Dela via


Gör så här: Generera primära interop-sammansättningar med hjälp av Tlbimp.exe

Det finns två sätt att generera en primär interop-sammansättning:

  • Använda typbiblioteksimportören (Tlbimp.exe) som tillhandahålls av Windows SDK.

    Det enklaste sättet att skapa primära interop-sammansättningar är att använda Tlbimp.exe (typbiblioteksimportör). Tlbimp.exe ger följande skydd:

    • Söker efter andra registrerade primära interop-sammansättningar innan du skapar nya interop-sammansättningar för eventuella biblioteksreferenser av kapslad typ.

    • Det går inte att generera den primära interop-sammansättningen om du inte anger containern eller filnamnet för att ge den primära interopsammansättningen ett starkt namn.

    • Det går inte att generera en primär interop-sammansättning om du utelämnar referenser till beroende sammansättningar.

    • Det går inte att generera en primär interop-sammansättning om du lägger till referenser till beroende sammansättningar som inte är primära interop-sammansättningar.

  • Skapa primära interop-sammansättningar manuellt i källkoden med hjälp av ett språk som är kompatibelt med Common Language Specification (CLS), till exempel C#. Den här metoden är användbar när ett typbibliotek inte är tillgängligt.

Du måste ha ett kryptografiskt nyckelpar för att signera sammansättningen med ett starkt namn. Mer information finns i Skapa ett nyckelpar.

Generera en primär interop-sammansättning med hjälp av Tlbimp.exe

  1. Skriv i kommandotolken:

    tlbimptlbfile/primary /keyfile:filename/out:assemblyname

    I det här kommandot är tlbfile filen som innehåller COM-typbiblioteket, filnamnet är namnet på containern eller filen som innehåller nyckelparet och sammansättningsnamnet är namnet på sammansättningen som ska signeras med ett starkt namn.

Primära interop-sammansättningar kan endast referera till andra primära interop-sammansättningar. Om sammansättningen refererar till typer från ett com-typbibliotek från tredje part måste du skaffa en primär interop-sammansättning från utgivaren innan du kan generera din primära interop-sammansättning. Om du är utgivare måste du generera en primär interop-sammansättning för det beroende typbiblioteket innan du genererar den refererande primära interop-sammansättningen.

En beroende primär interop-sammansättning med ett versionsnummer som skiljer sig från det ursprungliga typbiblioteket kan inte identifieras när den installeras i den aktuella katalogen. Du måste antingen registrera den beroende primära interopsammansättningen i Windows-registret eller använda alternativet /reference för att se till att Tlbimp.exe hittar den beroende DLL-filen.

Du kan också omsluta flera versioner av ett typbibliotek. Anvisningar finns i Så här omsluter du flera versioner av typbibliotek.

Exempel

I följande exempel importeras COM-typbiblioteket LibUtil.tlb och sammansättningen LibUtil.dll signeras med ett starkt namn med hjälp av nyckelfilen CompanyA.snk. Genom att utelämna ett specifikt namnområdesnamn genererar det här exemplet standardnamnområdet, LibUtil.

tlbimp LibUtil.tlb /primary /keyfile:CompanyA.snk /out:LibUtil.dll

För ett mer beskrivande namn (med hjälp av VendorName.Namngivningsguiden för LibraryName ) åsidosätter följande exempel standardnamnet för sammansättningsfilen och namnområdets namnområde.

tlbimp LibUtil.tlb /primary /keyfile:CompanyA.snk /namespace:CompanyA.LibUtil /out:CompanyA.LibUtil.dll

I följande exempel importeras MyLib.tlb, som refererar till CompanyA.LibUtil.dll, och signerar sammansättningen CompanyB.MyLib.dll med ett starkt namn med hjälp av nyckelfilen CompanyB.snk. Namnområdet, CompanyB.MyLib, åsidosätter standardnamnet för namnområdet.

tlbimp MyLib.tlb /primary /keyfile:CompanyB.snk /namespace:CompanyB.MyLib /reference:CompanyA.LibUtil.dll /out:CompanyB.MyLib.dll

Se även