Regasm.exe (アセンブリ登録ツール)Regasm.exe (Assembly Registration Tool)

アセンブリ登録ツールは、1 つのアセンブリに含まれるメタデータを読み込み、必要なエントリをレジストリに追加します。これにより、COM クライアントによって .NET Framework クラスが自動的に作成されます。The Assembly Registration tool reads the metadata within an assembly and adds the necessary entries to the registry, which allows COM clients to create .NET Framework classes transparently. クラスが登録されると、どの COM クライアントでも、そのクラスを COM クラスであるかのように使用できます。Once a class is registered, any COM client can use it as though the class were a COM class. クラスの登録は、アセンブリのインストール時に 1 回だけ行われます。The class is registered only once, when the assembly is installed. 実際に登録されるまでは、アセンブリに含まれるクラスのインスタンスを COM から作成することはできません。Instances of classes within the assembly cannot be created from COM until they are actually registered.

ツールを実行するには、Visual Studio 用の開発者コマンド プロンプトを使用します。To run the tool, use the Developer Command Prompt for Visual Studio. 詳細については、「Visual Studio 用開発者コマンド プロンプト」を参照してください。For more information, see Command Prompts.

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

構文Syntax

regasm assemblyFile [options]

パラメーターParameters

パラメーターParameter 説明Description
assemblyFileassemblyFile COM に登録するアセンブリ。The assembly to be registered with COM.
オプションOption 説明Description
/codebase/codebase レジストリに Codebase エントリを作成します。Creates a Codebase entry in the registry. Codebase エントリは、グローバル アセンブリ キャッシュにインストールされないアセンブリのファイル パスを指定します。The Codebase entry specifies the file path for an assembly that is not installed in the global assembly cache. 登録しようとしているアセンブリを、後でグローバル アセンブリ キャッシュにインストールする場合は、このオプションを指定する必要はありません。You should not specify this option if you will subsequently install the assembly that you are registering into the global assembly cache. /codebase オプションと共に指定する assemblyFile 引数は、厳密な名前付きのアセンブリである必要があります。The assemblyFile argument that you specify with the /codebase option must be a strong-named assembly.
/registered/registered このツールが既に登録されているタイプ ライブラリだけを参照するように指定します。Specifies that this tool will only refer to type libraries that have already been registered.
/asmpath:directory/asmpath:directory アセンブリ参照を含むディレクトリを指定します。Specifies a directory containing assembly references. /regfile オプションと共に使用する必要があります。Must be used with the /regfile option.
/nologo/nologo Microsoft 著作権情報を表示しません。Suppresses the Microsoft startup banner display.
/regfile [ : regFile]/regfile [: regFile] アセンブリについて指定した .reg ファイルを生成します。このファイルには必要なレジストリ エントリが含まれます。Generates the specified .reg file for the assembly, which contains the needed registry entries. このオプションを指定してもレジストリは変更されません。Specifying this option does not change the registry. このオプションは /u または /tlb オプションとは併用できません。You cannot use this option with the /u or /tlb options.
/silent または /s/silent or /s 成功メッセージを表示しません。Suppresses the display of success messages.
/tlb [ : typeLibFile]/tlb [: typeLibFile] 指定したアセンブリからタイプ ライブラリを生成します。このアセンブリには、アセンブリ内で定義されたアクセス可能な型の定義が含まれます。Generates a type library from the specified assembly containing definitions of the accessible types defined within the assembly.
/unregister または /u/unregister or /u assemblyFile 内で見つかった、作成可能なクラスの登録を取り消します。Unregisters the creatable classes found in assemblyFile. このオプションを省略すると、アセンブリ内の作成可能なクラスが Regasm.exe で登録されます。Omitting this option causes Regasm.exe to register the creatable classes in the assembly.
/verbose/verbose 詳細出力モードを指定します。 /tlb オプションと共に指定した場合、タイプ ライブラリを生成する必要のある参照先アセンブリの一覧が表示されます。Specifies verbose mode; displays a list of any referenced assemblies for which a type library needs to be generated, when specified with the /tlb option.
/?/? または /helpor /help このツールのコマンド構文とオプションを表示します。Displays command syntax and options for the tool.

注意

Regasm.exe のコマンド行オプションでは大文字と小文字が区別されません。The Regasm.exe command-line options are case insensitive. オプションの一部を指定するだけで一意に識別できます。You only need to provide enough of the option to uniquely identify it. たとえば、 /n/nologo と等価であり、 /t: outfile.tlb/tlb: outfile.tlb と等価です。For example, /n is equivalent to /nologo and /t: outfile.tlb is equivalent to /tlb: outfile.tlb.

解説Remarks

/regfile オプションを使用すると、直接にレジストリを変更しなくても、レジストリ エントリを含む .reg ファイルを生成できます。You can use the /regfile option to generate a .reg file that contains the registry entries instead of making the changes directly to the registry. コンピューターのレジストリを更新するには、レジストリ エディター ツール (Regedit.exe) を使用して .reg ファイルをインポートします。You can update the registry on a computer by importing the .reg file with the Registry Editor tool (Regedit.exe). .reg ファイルには、ユーザー定義の登録機能で行われるレジストリの更新についての情報は含まれません。Note that the .reg file does not contain any registry updates that can be made by user-defined register functions. /regfile オプションは、マネージド クラスのレジストリ エントリだけを生成します。Note that the /regfile option only emits registry entries for managed classes. このオプションは、TypeLibIDInterfaceID のエントリは生成しません。This option does not emit entries for TypeLibIDs or InterfaceIDs.

/tlb オプションを指定すると、アセンブリ内で見つかった型を記述するタイプ ライブラリが Regasm.exe で生成および登録されます。When you specify the /tlb option, Regasm.exe generates and registers a type library describing the types found in the assembly. 生成されたタイプ ライブラリは、現在の作業ディレクトリ、または出力ファイル用に指定されたディレクトリ内に格納されます。Regasm.exe places the generated type libraries in the current working directory or the directory specified for the output file. 他のアセンブリを参照するアセンブリについてタイプ ライブラリを生成すると、一度に複数のタイプ ライブラリが生成されることがあります。Generating a type library for an assembly that references other assemblies may cause several type libraries to be generated at once. タイプ ライブラリを使用して、Visual Studio などの開発用ツールに対して型情報を提供できます。You can use the type library to provide type information to development tools like Visual Studio. 登録するアセンブリがタイプ ライブラリ インポーター (Tlbimp.exe) で生成されたアセンブリである場合には、 /tlb オプションを使用しないでください。You should not use the /tlb option if the assembly you are registering was produced by the Type Library Importer (Tlbimp.exe). タイプ ライブラリからインポートされたアセンブリからは、タイプ ライブラリをエクスポートできません。You cannot export a type library from an assembly that was imported from a type library. /tlb オプションを使用した場合の効果は、タイプ ライブラリ エクスポーター (Tlbexp.exe) と Regasm.exe を使用した場合と同じです。ただし、Tlbexp.exe では、生成されたタイプ ライブラリが登録されません。Using the /tlb option has the same effect as using the Type Library Exporter (Tlbexp.exe) and Regasm.exe, with the exception that Tlbexp.exe does not register the type library it produces. /tlb オプションを使用してタイプ ライブラリを登録する場合、 /tlb オプションと /unregister オプションを使用してタイプ ライブラリの登録を解除できます。If you use the /tlb option to registered a type library, you can use /tlb option with the /unregister option to unregistered the type library. この 2 つのオプションを使用すると、タイプ ライブラリとインターフェイス エントリの登録を解除でき、これによって、レジストリをかなり整理できます。Using the two options together will unregister the type library and interface entries, which can clean the registry considerably.

COM で使用するためにアセンブリを登録すると、Regasm.exe は、ローカル コンピューターのレジストリにエントリを追加します。When you register an assembly for use by COM, Regasm.exe adds entries to the registry on the local computer. より具体的には、バージョンに依存するレジストリ キーを作成して、同じアセンブリの複数のバージョンが同じコンピューターで side-by-side 実行できるようにします。More specifically, it creates version-dependent registry keys that allow multiple versions of the same assembly to run side by side on a computer. アセンブリが初めて登録される場合は、そのアセンブリの最上位キーが 1 つ作成され、特定のバージョンに対する一意なサブキーが作成されます。The first time an assembly is registered, one top-level key is created for the assembly and a unique subkey is created for the specific version. アセンブリの新しいバージョンを登録するたびに、Regasm.exe は、新しいバージョンに対するサブキーを作成します。Each time you register a new version of the assembly, Regasm.exe creates a subkey for the new version.

たとえば、COM で使用するために、マネージド コンポーネント myComp.dll のバージョン 1.0.0.0 を登録しているとします。For example, consider a scenario where you register the managed component, myComp.dll, version 1.0.0.0 for use by COM. その後、myComp.dll バージョン 2.0.0.0 を登録します。Later, you register myComp.dll, version 2.0.0.0. コンピューター上のすべての COM クライアント アプリケーションは myComp.dll バージョン 2.0.0.0 を使用しているため、myComponent.dll バージョン 1.0.0.0 を登録解除することにしました。You determine that all COM client applications on the computer are using myComp.dll version 2.0.0.0 and you decide to unregister myComponent.dll version 1.0.0.0. このレジストリ スキームでは、myComp.dll バージョン 1.0.0.0 のサブキーだけが削除されるため、バージョン 1.0.0.0 を登録解除できます。This registry scheme allows you to unregister myComp.dll version 1.0.0.0 because only the version 1.0.0.0 subkey is removed.

Regasm.exe を使用してアセンブリを登録した後で、そのアセンブリをグローバル アセンブリ キャッシュ内に登録すると、どの COM クライアントからもアクティブにできます。After registering an assembly using Regasm.exe, you can install it in the global assembly cache so that it can be activated from any COM client. アセンブリをアクティブにするアプリケーションが 1 つだけの場合は、そのアプリケーションのディレクトリ内にアセンブリを格納できます。If the assembly is only going to be activated by a single application, you can place it in that application's directory.

使用例Examples

myTest.dll に含まれるすべてのパブリック クラスを登録するコマンドを次に示します。The following command registers all public classes contained in myTest.dll.

regasm myTest.dll

ファイル myTest.reg を生成するコマンドを次に示します。このファイルには、必要なレジストリ エントリがすべて含まれます。The following command generates the file myTest.reg, which contains all the necessary registry entries. このコマンドを実行してもレジストリは更新されません。This command does not update the registry.

regasm myTest.dll /regfile:myTest.reg

myTest.dll に含まれるすべてのパブリック クラスを登録し、タイプ ライブラリ myTest.tlb を生成および登録するコマンドを次に示します。このタイプ ライブラリには、myTest.dll で定義されたすべてのパブリック型の定義が含まれます。The following command registers all public classes contained in myTest.dll, and generates and registers the type library myTest.tlb, which contains definitions of all the public types defined in myTest.dll.

regasm myTest.dll /tlb:myTest.tlb

関連項目See also