タイプ ライブラリ インポータ (Tlbimp.exe)

タイプ ライブラリ インポータは、COM タイプ ライブラリにある型定義を共通言語ランタイム アセンブリで等価な定義に変換します。Tlbimp.exe の出力は、元のタイプ ライブラリで定義された型のランタイム メタデータを格納するバイナリ ファイル (アセンブリ) です。このファイルは ildasm.exe などのツールでチェックできます。

tlbimp tlbFile [options]

パラメータ

引数 説明

tlbFile

COM タイプ ライブラリを格納する任意のファイルの名前。

オプション 説明

/asmversion: versionNumber

生成するアセンブリのバージョン番号を指定します。versionNumbermajor.minor.build.revision の形式で指定します。

/delaysign

Tlbimp.exe が遅延署名を使用して、生成されたアセンブリに厳密な名前で署名するように指定します。このオプションは、/keycontainer:/keyfile:、または /publickey: のいずれかのオプションと共に指定する必要があります。遅延署名プロセスの詳細については、「アセンブリへの遅延署名」を参照してください。

/help

このツールのコマンド構文とオプションを表示します。

/keycontainer: containername

containername で指定されたキー コンテナの公開キーと秘密キーのペアを使用して、生成されたアセンブリに厳密な名前で署名します。

/keyfile: filename

filename にある発行者の正式な公開キーと秘密キーのペアを使用して、生成されたアセンブリに厳密な名前で署名します。

/namespace: namespace

アセンブリの生成先の名前空間を指定します。

/noclassmembers

Tlbimp.exe がメンバをクラスに追加できないようにします。これにより、TypeLoadException が発生する可能性がなくなります。

/nologo

Microsoft 著作権情報を表示しません。

/out: filename

メタデータ定義の書き込み先の出力ファイル、アセンブリ、および名前空間の名前を指定します。アセンブリの名前空間を明示的に制御するインターフェイス定義言語 (IDL: Interface Definition Language) カスタム属性がタイプ ライブラリで指定されている場合、/out オプションはアセンブリの名前空間を制御できません。このオプションを指定しない場合、Tlbimp.exe は、入力ファイルで定義された実際のタイプ ライブラリと同じ名前のファイルにメタデータを書き込み、そのファイルに .dll 拡張子を割り当てます。出力ファイルの名前が入力ファイルと同じ場合は、タイプ ライブラリが上書きされるのを防ぐためにエラーが発生します。

/primary

指定したタイプ ライブラリのプライマリ相互運用機能アセンブリを生成します。アセンブリに追加される情報は、アセンブリを生成したタイプ ライブラリの発行者を示します。プライマリ相互運用機能アセンブリを指定すると、Tlbimp.exe を使用して、ある発行者のアセンブリとタイプ ライブラリから作成された他のアセンブリを区別します。Tlbimp.exe を使用してインポートするタイプ ライブラリの発行者である場合は、/primary オプションを使用してください。プライマリ相互運用機能アセンブリには、厳密な名前で署名する必要があります。詳細については、「プライマリ相互運用機能アセンブリ」を参照してください。

/publickey: filename

生成されたアセンブリに署名するために使用する公開キーを格納するファイルを指定します。/publickey: オプションの代わりに /keyfile: オプションまたは /keycontainer: オプションを指定した場合、Tlbimp.exe は、/keyfile: または /keycontainer: で指定された公開キーと秘密キーのペアから公開キーを生成します。/publickey: オプションを指定すると、テスト キーと遅延署名を使用できます。ファイルは Sn.exe で生成された形式になります。詳細については、「厳密名ツール (Sn.exe)」にある Sn.exe の -p オプションの説明を参照してください。

/reference: filename

現在のタイプ ライブラリ以外で定義された型への参照を解決するために使用するアセンブリ ファイルを指定します。/reference オプションを指定しない場合、Tlbimp.exe は、インポートされるタイプ ライブラリが参照しているすべての外部タイプ ライブラリを再帰的に自動インポートします。/reference オプションを指定した場合、このツールは、他のタイプ ライブラリをインポートする前に、参照されたアセンブリ内の外部型を解決しようとします。

/silent

成功メッセージを表示しません。

/strictref

ツールが現在のアセンブリ内、/reference オプションで指定されたアセンブリ内、または登録されているプライマリ相互運用機能アセンブリ (PIA) 内のすべての参照を解決できない場合は、タイプ ライブラリをインポートしません。

/strictref:nopia

/strictref と同じですが、PIA を無視します。

/sysarray

ツールが COM スタイル SafeArray をマネージ System.Array クラス型としてインポートするように指定します。

/tlbreference: filename

レジストリを参照せずにタイプ ライブラリ参照を解決する場合に使用するタイプ ライブラリ ファイルを指定します。

このオプションでは、古いタイプ ライブラリの形式の一部が読み込まれないことに注意してください。ただし、古いタイプ ライブラリの形式は、レジストリまたは現在のディレクトリから暗黙的に読み込むことができます。

/transform: transformName

transformName パラメータで指定されたようにメタデータを変換します。

ディスパッチ専用インターフェイスに対するメソッドの [out, retval] パラメータを戻り値に変換するには、transformName パラメータに dispret を指定します。

このオプションの詳細については、このトピックの下記の例を参照してください。

/unsafe

.NET Framework セキュリティ チェックなしでインターフェイスを生成します。この方法で公開されているメソッドを呼び出す場合には、セキュリティ上のリスクが伴います。このオプションは、上記に該当するコードを公開するリスクを理解した上で使用してください。

/verbose

詳細モードを指定します。インポートされたタイプ ライブラリについての詳細情報を表示します。

/?

このツールのコマンド構文とオプションを表示します。

注意

Tlbimp.exe のコマンド ライン オプションでは、大文字と小文字が区別されません。また、これらのオプションは任意の順序で指定できます。オプションを一意に識別するために十分である場合は、オプションの一部を指定するだけでもかまいません。したがって、/n と指定した場合は /nologo/ou:outfile.dll と指定した場合は /out:outfile.dll であると見なされます。

解説

Tlbimp.exe は、タイプ ライブラリ全体の変換を一括して実行します。このツールを使用しても、単一のタイプ ライブラリで定義されている型のサブセットに関する型情報は生成できません。

アセンブリへの厳密な名前の割り当てを許可しておくと、さまざまな場合に役立ちます。この割り当てが必須であることもあります。このため、Tlbimp.exe には、厳密な名前を持つアセンブリを生成するために必要な情報を提供するオプションが用意されています。/keyfile: オプションと /keycontainer: オプションは、両方ともアセンブリに厳密な名前で署名します。したがって、これらのオプションを両方同時に指定しないでください。

複数のタイプ ライブラリを格納するモジュールから 1 つのタイプ ライブラリをインポートするときに、タイプ ライブラリ ファイルにリソース ID を追加することもできます。Tlbimp.exe は、このファイルが現在のディレクトリにあるか、ユーザーが完全パスを指定した場合にだけこのファイルを認識できます。このトピックの下記の例を参照してください。

myTest.tlb 内で見つかったタイプ ライブラリと同じ名前で、.dll 拡張子を持つアセンブリを生成するコマンドを次に示します。

tlbimp myTest.tlb 

myTest.dll という名前を持つアセンブリを生成するコマンドを次に示します。

tlbimp  myTest.tlb  /out:myTest.dll

MyModule.dll\1 で指定されているタイプ ライブラリと同じ名前で、.dll 拡張子を持つアセンブリを生成するコマンドを次に示します。MyModule.dll\1 は現在のディレクトリ内に置かれていることが必要です。

tlbimp MyModule.dll\1

タイプ ライブラリ TestLib.dll に対して、myTestLib.dll という名前のアセンブリを生成するコマンドを次に示します。/transform:dispret オプションは、タイプ ライブラリのディスパッチ インターフェイスに対するメソッドの [out, retval] パラメータをマネージ ライブラリの戻り値に変換します。

tlbimp TestLib.dll /transform:dispret /out:myTestLib.dll

上記の例のタイプ ライブラリ TestLib.dll には、void 型を返し、[out, retval] パラメータを持つ、SomeMethod という名前のディスパッチ インターフェイス メソッドが含まれています。TestLib.dllSomeMethod に対する入力タイプ ライブラリ メソッド シグネチャのコードを次に示します。

void SomeMethod([out, retval] VARIANT_BOOL*);

/transform:dispret オプションを指定すると、Tlbimp.exe は、SomeMethod[out, retval] パラメータを bool 型の戻り値に変換します。/transform:dispret オプションを指定した場合に、Tlbimp.exe が、マネージ ライブラリ myTestLib.dllSomeMethod に対して生成するメソッド シグネチャを次に示します。

bool SomeMethod();

Tlbimp.exe を使用して、/transform:dispret を指定せずに TestLib.dll のマネージ ライブラリを生成すると、マネージ ライブラリ myTestLib.dll には SomeMethod の次のメソッド シグネチャが生成されます。

void SomeMethod(out bool x);

参照

関連項目

.NET Framework ツール
タイプ ライブラリ エクスポータ (Tlbexp.exe)
MSIL 逆アセンブラ (Ildasm.exe)
厳密名ツール (Sn.exe)
SDK のコマンド プロンプト

概念

タイプ ライブラリのアセンブリとしてのインポート
厳密な名前付きアセンブリ
タイプ ライブラリを相互運用機能アセンブリにインポートするための属性

その他の技術情報

タイプ ライブラリからアセンブリへの変換の要約