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
Skriv i kommandotolken:
tlbimp tlbfile /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