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

タイプ ライブラリ インポーターは、COM タイプ ライブラリにある型定義を共通言語ランタイム アセンブリで等価な定義に変換します。The Type Library Importer converts the type definitions found within a COM type library into equivalent definitions in a common language runtime assembly. Tlbimp.exe の出力は、元のタイプ ライブラリで定義された型のランタイム メタデータを格納するバイナリ ファイル (アセンブリ) です。The output of Tlbimp.exe is a binary file (an assembly) that contains runtime metadata for the types defined within the original type library. このファイルは ildasm.exe などのツールでチェックできます。You can examine this file with tools such as Ildasm.exe.

このツールは、Visual Studio と共に自動的にインストールされます。This tool is automatically installed with Visual Studio. このツールを実行するには、Visual Studio 用開発者コマンド プロンプト (または Windows 7 の Visual Studio コマンド プロンプト) を使用します。To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). 詳細については、「Visual Studio 用開発者コマンド プロンプト」を参照してください。For more information, see Command Prompts.

コマンド プロンプトに次のように入力します。At the command prompt, type the following:

構文Syntax

tlbimp tlbFile [options]  

パラメーターParameters

引数Argument 説明Description
tlbFiletlbFile COM タイプ ライブラリを格納する任意のファイルの名前。The name of any file that contains a COM type library.
オプションOption 説明Description
/asmversion: versionnumber/asmversion: versionnumber 生成するアセンブリのバージョン番号を指定します。Specifies the version number of the assembly to produce. versionnumbermajor.minor.build.revision の形式で指定します。Specify versionnumber in the format major.minor.build.revision.
/company: companyinformation/company: companyinformation 出力アセンブリに会社情報を追加します。Adds company information to the output assembly.
/copyright: copyrightinformation/copyright: copyrightinformation 出力アセンブリに著作権情報を追加します。Adds copyright information to the output assembly. この情報は、アセンブリの [ファイルのプロパティ] ダイアログ ボックスで確認できます。This information can be viewed in the File Properties dialog box for the assembly.
T:System.Reflection.AssemblyDelaySignAttribute/delaysign Tlbimp.exe が遅延署名を使用して、生成されたアセンブリに厳密な名前で署名するように指定します。Specifies to Tlbimp.exe to sign the resulting assembly with a strong name using delayed signing. このオプションは、 /keycontainer:/keyfile: 、または /publickey: のいずれかのオプションと共に指定する必要があります。You must specify this option with either the /keycontainer:, /keyfile:, or /publickey: option. 遅延署名プロセスの詳細については、「アセンブリへの遅延署名」を参照してください。For more information on the delayed signing process, see Delay Signing an Assembly.
/help/help このツールのコマンド構文とオプションを表示します。Displays command syntax and options for the tool.
/keycontainer: containername/keycontainer: containername containername で指定されたキー コンテナーの公開キーと秘密キーのペアを使用して、生成されたアセンブリに厳密な名前で署名します。Signs the resulting assembly with a strong name using the public/private key pair found in the key container specified by containername.
/keyfile: filename/keyfile: filename filename にある発行者の正式な公開キーと秘密キーのペアを使用して、生成されたアセンブリに厳密な名前で署名します。Signs the resulting assembly with a strong name using the publisher's official public/private key pair found in filename.
/machine: machinetype/machine: machinetype 指定したコンピューターの種類 (マイクロプロセッサ) を対象とするアセンブリを作成します。Creates an assembly that targets the specified machine type (microprocessor). サポートされているコンピューターの種類は、x86、x64、Itanium、および「不明」です。Supported machine types: x86, x64, Itanium, and Agnostic.
/namespace: namespace/namespace: namespace アセンブリの生成先の名前空間を指定します。Specifies the namespace in which to produce the assembly.
/noclassmembers/noclassmembers Tlbimp.exe がメンバーをクラスに追加できないようにします。Prevents Tlbimp.exe from adding members to classes. これにより、TypeLoadException が発生する可能性がなくなります。This avoids a potential TypeLoadException.
/nologo/nologo Microsoft 著作権情報を表示しません。Suppresses the Microsoft startup banner display.
/out: filename/out: filename メタデータ定義の書き込み先の出力ファイル、アセンブリ、および名前空間の名前を指定します。Specifies the name of the output file, assembly, and namespace in which to write the metadata definitions. アセンブリの名前空間を明示的に制御するインターフェイス定義言語 (IDL: Interface Definition Language) カスタム属性がタイプ ライブラリで指定されている場合、 /out オプションはアセンブリの名前空間を制御できません。The /out option has no effect on the assembly's namespace if the type library specifies the Interface Definition Language (IDL) custom attribute that explicitly controls the assembly's namespace. このオプションを指定しない場合、Tlbimp.exe は、入力ファイルで定義された実際のタイプ ライブラリと同じ名前のファイルにメタデータを書き込み、そのファイルに .dll 拡張子を割り当てます。If you do not specify this option, Tlbimp.exe writes the metadata to a file with the same name as the actual type library defined within the input file and assigns it a .dll extension. 出力ファイルの名前が入力ファイルと同じ場合は、タイプ ライブラリが上書きされるのを防ぐためにエラーが発生します。If the output file is the same name as the input file, the tool generates an error to prevent overwriting the type library.
/primary/primary 指定したタイプ ライブラリのプライマリ相互運用機能アセンブリを生成します。Produces a primary interop assembly for the specified type library. アセンブリに追加される情報は、アセンブリを生成したタイプ ライブラリの発行者を示します。Information is added to the assembly indicating that the publisher of the type library produced the assembly. プライマリ相互運用機能アセンブリを指定すると、Tlbimp.exe を使用して、ある発行者のアセンブリとタイプ ライブラリから作成された他のアセンブリを区別します。By specifying a primary interop assembly, you differentiate a publisher's assembly from any other assemblies that are created from the type library using Tlbimp.exe. Tlbimp.exe を使用してインポートするタイプ ライブラリの発行者である場合は、 /primary オプションを使用してください。You should only use the /primary option if you are the publisher of the type library that you are importing with Tlbimp.exe. プライマリ相互運用機能アセンブリには、厳密な名前で署名する必要があります。Note that you must sign a primary interop assembly with a strong name. 詳細については、「プライマリ相互運用機能アセンブリ」を参照してください。For more information, see Primary Interop Assemblies.
/product: productinformation/product: productinformation 出力アセンブリに製品情報を追加します。Adds product information to the output assembly. この情報は、アセンブリの [ファイルのプロパティ] ダイアログ ボックスで確認できます。This information can be viewed in the File Properties dialog box for the assembly.
/productversion: productversioninformation/productversion: productversioninformation 出力アセンブリにバージョン情報を追加します。Adds product version information to the output assembly. 形式の制限はありません。There are no format restrictions. この情報は、アセンブリの [ファイルのプロパティ] ダイアログ ボックスで確認できます。This information can be viewed in the File Properties dialog box for the assembly.
/publickey: filename/publickey: filename 生成されたアセンブリに署名するために使用する公開キーを格納するファイルを指定します。Specifies the file containing the public key to use to sign the resulting assembly. /publickey: オプションの代わりに /keyfile: オプションまたは /keycontainer: オプションを指定した場合、Tlbimp.exe は、 /keyfile: または /keycontainer: で指定された公開キーと秘密キーのペアから公開キーを生成します。If you specify the /keyfile: or /keycontainer: option instead of /publickey:, Tlbimp.exe generates the public key from the public/private key pair supplied with /keyfile: or /keycontainer:. /publickey: オプションを指定すると、テスト キーと遅延署名を使用できます。The /publickey: option supports test key and delay signing scenarios. ファイルは Sn.exe で生成された形式になります。The file is in the format generated by Sn.exe. 詳細については、「厳密名ツール (Sn.exe)」にある Sn.exe の -p オプションの説明を参照してください。For more information, see the -p option of Sn.exe in Strong Name Tool (Sn.exe).
/reference: filename/reference: filename 現在のタイプ ライブラリ以外で定義された型への参照を解決するために使用するアセンブリ ファイルを指定します。Specifies the assembly file to use to resolve references to types defined outside the current type library. /reference オプションを指定しない場合、Tlbimp.exe は、インポートされるタイプ ライブラリが参照しているすべての外部タイプ ライブラリを再帰的に自動インポートします。If you do not specify the /reference option, Tlbimp.exe automatically recursively imports any external type library that the type library being imported references. /reference オプションを指定した場合、このツールは、他のタイプ ライブラリをインポートする前に、参照されたアセンブリ内の外部型を解決しようとします。If you specify the /reference option, the tool attempts to resolve external types in the referenced assemblies before it imports other type libraries.
/silence: warningnumber/silence: warningnumber 指定された警告を表示しません。Suppresses the display of the specified warning. このオプションは、 /silent オプションと共に使用することはできません。This option cannot be used with /silent.
/silent/silent 成功メッセージを表示しません。Suppresses the display of success messages. このオプションは、 /silence オプションと共に使用することはできません。This option cannot be used with /silence.
/strictref/strictref ツールが現在のアセンブリ内、 /reference オプションで指定されたアセンブリ内、または登録されているプライマリ相互運用機能アセンブリ (PIA) 内のすべての参照を解決できない場合は、タイプ ライブラリをインポートしません。Does not import a type library if the tool cannot resolve all references within the current assembly, the assemblies specified with the /reference option, or registered primary interop assemblies (PIAs).
/strictref:nopia/strictref:nopia /strictref と同じですが、PIA を無視します。Same as /strictref, but ignores PIAs.
/sysarray/sysarray ツールが COM スタイル SafeArray をマネージド Array 型としてインポートするように指定します。Specifies to the tool to import a COM style SafeArray as a managed Array type.
/tlbreference: filename/tlbreference: filename レジストリを参照せずにタイプ ライブラリ参照を解決する場合に使用するタイプ ライブラリ ファイルを指定します。Specifies the type library file to use to resolve type library references without consulting the registry.

このオプションでは、古いタイプ ライブラリの形式の一部が読み込まれないことに注意してください。Note that this option will not load some older type library formats. ただし、古いタイプ ライブラリの形式は、レジストリまたは現在のディレクトリから暗黙的に読み込むことができます。However, you can still load older type library formats implicitly through the registry or current directory.
/trademark: trademarkinformation/trademark: trademarkinformation 出力アセンブリに商標情報を追加します。Adds trademark information to the output assembly. この情報は、アセンブリの [ファイルのプロパティ] ダイアログ ボックスで確認できます。This information can be viewed in the File Properties dialog box for the assembly.
/transform: transformname/transform: transformname transformname パラメーターで指定されたようにメタデータを変換します。Transforms metadata as specified by the transformname parameter.

ディスパッチ専用インターフェイス (dispinterface) のメソッドの [out, retval] パラメーターを戻り値に変換するには、transformname パラメーターに dispret を指定します。Specify dispret for the transformname parameter to transform [out, retval] parameters of methods on dispatch-only interfaces (dispinterfaces) into return values.

このオプションの詳細については、このトピックの下記の例を参照してください。For more information about this option, see the examples later in this topic.
/unsafe/unsafe .NET Framework セキュリティ チェックなしでインターフェイスを生成します。Produces interfaces without .NET Framework security checks. この方法で公開されているメソッドを呼び出す場合には、セキュリティ上のリスクが伴います。Calling a method that is exposed in this way might pose a security risk. このオプションは、上記に該当するコードを公開するリスクを理解した上で使用してください。You should not use this option unless you are aware of the risks of exposing such code.
/verbose/verbose 詳細モードを指定します。インポートされたタイプ ライブラリについての詳細情報を表示します。Specifies verbose mode; displays additional information about the imported type library.
/VariantBoolFieldToBool/VariantBoolFieldToBool 構造体の VARIANT_BOOL フィールドを Boolean に変換します。Converts VARIANT_BOOL fields in structures to Boolean.
/?/? このツールのコマンド構文とオプションを表示します。Displays command syntax and options for the tool.

注意

Tlbimp.exe のコマンド ライン オプションでは、大文字と小文字が区別されません。また、これらのオプションは任意の順序で指定できます。The command-line options for Tlbimp.exe are case-insensitive and can be supplied in any order. オプションを一意に識別するために十分である場合は、オプションの一部を指定するだけでもかまいません。You only need to specify enough of the option to uniquely identify it. したがって、 /n と指定した場合は /nologo/ou: outfile.dll と指定した場合は /out: outfile.dll であると見なされます。Therefore, /n is equivalent to /nologo and /ou: outfile.dll is equivalent to /out: outfile.dll.

解説Remarks

Tlbimp.exe は、タイプ ライブラリ全体の変換を一括して実行します。Tlbimp.exe performs conversions on an entire type library at one time. このツールを使用しても、単一のタイプ ライブラリで定義されている型のサブセットに関する型情報は生成できません。You cannot use the tool to generate type information for a subset of the types defined within a single type library.

アセンブリへの厳密な名前の割り当てを許可しておくと、さまざまな場合に役立ちます。この割り当てが必須であることもあります。It is often useful or necessary to be able to assign strong names to assemblies. このため、Tlbimp.exe には、厳密な名前を持つアセンブリを生成するために必要な情報を提供するオプションが用意されています。Therefore, Tlbimp.exe includes options for supplying the information necessary to generate strongly named assemblies. /keyfile: オプションと /keycontainer: オプションは、両方ともアセンブリに厳密な名前で署名します。Both the /keyfile: and /keycontainer: options sign assemblies with strong names. したがって、これらのオプションを両方同時に指定しないでください。Therefore, it is logical to supply only one of these options at a time.

/reference オプションを複数回使用すると、複数の参照アセンブリを指定できます。You can specify multiple reference assemblies by using the /reference option multiple times.

Tlbimp.exe によるアセンブリの生成方法のため、アセンブリのターゲットを mscorlib の別のバージョンに変更することはできません。Due to the way in which Tlbimp.exe generates assemblies, it is not possible to retarget an assembly to a different mscorlib version. たとえば、.NET Framework 2.0 をターゲットとするアセンブリを生成したい場合は、.NET Framework 2.0/3.0/3.5 SDK に付属する Tlbimp.exe を使用する必要があります。For example, if you desire to generate an assembly that targets .NET Framework 2.0, the Tlbimp.exe shipped with the .NET Framework 2.0/3.0/3.5 SDK must be used. .NET Framework 4.x をターゲットにするには、.NET Framework 4.x SDK に付属する Tlbimp.exe を使用する必要があります。In order to target .NET Framework 4.x, the Tlbimp.exe shipped with a .NET Framework 4.x SDK should be used.

複数のタイプ ライブラリを格納するモジュールから 1 つのタイプ ライブラリをインポートするときに、タイプ ライブラリ ファイルにリソース ID を追加することもできます。A resource ID can optionally be appended to a type library file when importing a type library from a module containing multiple type libraries. Tlbimp.exe は、このファイルが現在のディレクトリにあるか、ユーザーが完全パスを指定した場合にだけこのファイルを認識できます。Tlbimp.exe is able to locate this file only if it is in the current directory or if you specify the full path. このトピックの下記の例を参照してください。See the example later in this topic.

使用例Examples

myTest.tlb 内で見つかったタイプ ライブラリと同じ名前で、.dll 拡張子を持つアセンブリを生成するコマンドを次に示します。The following command generates an assembly with the same name as the type library found in myTest.tlb and with the .dll extension.

tlbimp myTest.tlb   

myTest.dll という名前を持つアセンブリを生成するコマンドを次に示します。The following command generates an assembly with the name myTest.dll.

tlbimp  myTest.tlb  /out:myTest.dll  

MyModule.dll\1 で指定されているタイプ ライブラリと同じ名前で、.dll 拡張子を持つアセンブリを生成するコマンドを次に示します。The following command generates an assembly with the same name as the type library specified by MyModule.dll\1 and with the .dll extension. MyModule.dll\1 は現在のディレクトリ内に置かれている必要があります。MyModule.dll\1 must be located in the current directory.

tlbimp MyModule.dll\1  

タイプ ライブラリ myTestLib.dll に対して、TestLib.dll という名前のアセンブリを生成するコマンドを次に示します。The following command generates an assembly with the name myTestLib.dll for the type library TestLib.dll. /transform:dispret オプションは、タイプ ライブラリのディスパッチ インターフェイスに対するメソッドの [out, retval] パラメーターをマネージド ライブラリの戻り値に変換します。The /transform:dispret option transforms any [out, retval] parameters of methods on dispinterfaces in the type library into return values in the managed library.

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

上記の例のタイプ ライブラリ TestLib.dll には、void 型を返し、[out, retval] パラメーターを持つ、SomeMethod という名前のディスパッチ インターフェイス メソッドが含まれています。The type library TestLib.dll, in the preceding example, includes a dispinterface method named SomeMethod that returns void and has an [out, retval] parameter. SomeMethodTestLib.dll に対する入力タイプ ライブラリ メソッド シグネチャのコードを次に示します。The following code is the input type library method signature for SomeMethod in TestLib.dll.

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

/transform:dispret オプションを指定すると、Tlbimp.exe は、SomeMethod[out, retval] パラメーターを bool 型の戻り値に変換します。Specifying the /transform:dispret option causes Tlbimp.exe to transform the [out, retval] parameter of SomeMethod into a bool return value. /transform:dispret オプションを指定した場合に、Tlbimp.exe が、マネージド ライブラリ myTestLib.dllSomeMethod に対して生成するメソッド シグネチャを次に示します。The following is the method signature that Tlbimp.exe produces for SomeMethod in the managed library myTestLib.dll when the /transform:dispret option is specified.

bool SomeMethod();  

Tlbimp.exe を使用して、 /transform:dispret を指定せずに TestLib.dll のマネージド ライブラリを生成すると、マネージド ライブラリ myTestLib.dll には SomeMethod の次のメソッド シグネチャが生成されます。If you use Tlbimp.exe to produce a managed library for TestLib.dll without specifying the /transform:dispret, the tool produces the following method signature for SomeMethod in the managed library myTestLib.dll.

void SomeMethod(out bool x);  

関連項目See also