方法: Tlbimp.exe を使用してプライマリ相互運用機能アセンブリを生成する
プライマリ相互運用機能アセンブリを生成する一番簡単な方法は、Tlbimp.exe (タイプ ライブラリ インポーター) を使用することです。
Tlbimp.exe を使用してプライマリ相互運用機能アセンブリを生成するには
コマンド プロンプトに次のように入力します。
tlbimp tlbfile /primary /keyfile: filename /out: assemblyname
このコマンドで、tlbfile は COM タイプ ライブラリを格納するファイル、filename はキーのペアを格納するコンテナーまたはファイルの名前、assemblyname は厳密な名前を使って署名するアセンブリの名前です。
プライマリ相互運用機能アセンブリは、他のプライマリ相互運用機能アセンブリだけを参照できます。 作成するアセンブリがサード パーティの COM タイプ ライブラリの型を参照する場合は、プライマリ相互運用機能アセンブリを生成する前に、タイプ ライブラリの発行元からプライマリ相互運用機能アセンブリを入手する必要があります。 自分が発行元である場合は、参照元のプライマリ相互運用機能アセンブリを生成する前に、依存タイプ ライブラリのプライマリ相互運用機能アセンブリを生成する必要があります。
依存プライマリ相互運用機能アセンブリのバージョン番号が、元のタイプ ライブラリのバージョン番号と異なる場合は、現在のディレクトリにインストールされている依存プライマリ相互運用機能アセンブリを探索できません。 依存プライマリ相互運用機能アセンブリを Windows のレジストリに登録するか、/reference オプションを使用して Tlbimp.exe が依存 DLL を検出できるようにする必要があります。
複数のバージョンのタイプ ライブラリをラップできます。 手順については、「方法: 複数のバージョンのタイプ ライブラリをラップする」を参照してください。
使用例
COM タイプ ライブラリ LibUtil.tlb をインポートし、キーファイル CompanyA.snk を使用して厳密な名前でアセンブリ LibUtil.dll に署名する例を次に示します。 この例では、固有の名前空間名を省略することで、既定の名前空間 LibUtil を生成します。
tlbimp LibUtil.tlb /primary /keyfile:CompanyA.snk /out:LibUtil.dll
VendorName.LibraryName という命名のガイドラインを使用して、さらにわかりやすい名前にするために、既定のアセンブリ ファイル名と名前空間名をオーバーライドする例を次に示します。
tlbimp LibUtil.tlb /primary /keyfile:CompanyA.snk /namespace:CompanyA.LibUtil /out:CompanyA.LibUtil.dll
CompanyA.LibUtil.dll を参照する MyLib.tlb をインポートし、キー ファイル CompanyB.snk を使用して厳密な名前でアセンブリ CompanyB.MyLib.dll に署名する例を、次に示します。 名前空間 CompanyB.MyLib は、既定の名前空間名をオーバーライドします。
tlbimp MyLib.tlb /primary /keyfile:CompanyB.snk /namespace:CompanyB.MyLib /reference:CompanyA.LibUtil.dll /out:CompanyB.MyLib.dll