Procedura: generare assembly di interoperabilità tramite Tlbimp.exe
La procedura più semplice per generare assembly di interoperabilità primari consiste nell'uso dell'Tlbimp.exe (utilità di importazione della libreria dei tipi).
Al prompt dei comandi digitare:
tlbimp filelibreria **/primary /keyfile:**nomefile **/out:**nomeassembly
In questo comando, filelibreria rappresenta il file contenente la libreria dei tipi COM, nomefile corrisponde al nome del contenitore o del file contenente la coppia di chiavi e nomeassembly costituisce il nome dell'assembly da firmare con un nome sicuro.
Gli assembly di interoperabilità primari possono fare riferimento solo ad altri assembly di interoperabilità primari. Se l'assembly fa riferimento a tipi di una libreria dei tipi COM di terze parti, prima di generare l'assembly di interoperabilità primario desiderato è necessario ottenere un assembly di interoperabilità primario dall'editore. Se si è l'editore, occorre generare un assembly di interoperabilità primario per la libreria dei tipi dipendente prima di generare l'assembly di interoperabilità primario contenente il riferimento.
Quando viene installato nella directory corrente, un assembly di interoperabilità primario con un numero di versione diverso da quello della libreria dei tipi originale non è individuabile. È quindi necessario registrare l'assembly di interoperabilità primario dipendente nel Registro di sistema di Windows oppure utilizzare l'opzione /reference per assicurarsi che la DLL dipendente possa essere trovata mediante Tlbimp.exe.
È inoltre possibile eseguire il wrapping di più versioni di una libreria dei tipi. Per istruzioni, vedere Procedura: eseguire il wrapping di più versioni delle librerie dei tipi.
Nell'esempio riportato di seguito viene importata la libreria dei tipi COM LibUtil.tlb e viene firmato l'assembly LibUtil.dll con un nome sicuro, utilizzando il file di chiave CompanyA.snk. Poiché non viene fornito un nome specifico per lo spazio dei nomi, nell'esempio viene creato lo spazio dei nomi predefinito LibUtil.
tlbimp LibUtil.tlb /primary /keyfile:CompanyA.snk /out:LibUtil.dll
Per definire un nome più descrittivo, utilizzando la convenzione di denominazione NomeFornitore.NomeLibreria, nell'esempio riportato di seguito viene eseguito l'override del nome file dell'assembly e del nome dello spazio dei nomi predefiniti.
tlbimp LibUtil.tlb /primary /keyfile:CompanyA.snk /namespace:CompanyA.LibUtil /out:CompanyA.LibUtil.dll
Nell'esempio riportato di seguito viene importata la libreria MyLib.tlb, che fa riferimento a CompanyA.LibUtil.dll e viene firmato l'assembly CompanyB.MyLib.dll con un nome sicuro mediante il file di chiave CompanyB.snk. Viene inoltre eseguito l'override dello spazio dei nomi predefinito con lo spazio dei nomi CompanyB.MyLib.
tlbimp MyLib.tlb /primary /keyfile:CompanyB.snk /namespace:CompanyB.MyLib /reference:CompanyA.LibUtil.dll /out:CompanyB.MyLib.dll
Procedura: eseguire il wrapping di più versioni delle librerie dei tipi
Procedura: creare assembly di interoperabilità primari manualmente