FAQ
ESRIRegAsm ユーティリティ

ナレッジ番号:5256 | 登録日:2023/07/26 | 更新日:2023/12/28

内容


ESRIRegAsm について

コンポーネント オブジェクト モデル (COM) コンポーネントは使用される前にシステムに登録されていなければなりません。これは、以前は Microsoft が提供する以下のユーティリティを使用して行われていました。  

  • ネイティブ コードのための RegSvr32.exe
  • マネージド コードのための RegAsm.exe

ArcGIS 10 から、COM コンポーネント カテゴリ方式からの変更が行われました。代わりの方法は新しい登録ユーティリティ(ESRIRegAsm.exe)と、 "製品とバージョン" がリリースされるごとに作成される Configuration フォルダに格納されている拡張マークアップ言語(XML)データベースから成り立っており、システム レジストリからは独立しています。そのためコンポーネントの登録と、開発者が作成したアセンブリやダイナミック リンク ライブラリに対するカテゴリ情報の登録は、ESRIRegAsm と呼ばれる新しく ESRI が提供するユーティリティによって行われます。

ESRIRegAsm は、ネイティブ COM DLL とマネージ COM アセンブリの両方の登録を行い、前に述べた通り、登録情報のコンポーネント カテゴリの部分はシステム レジストリへ書き込みません。

既存のライブラリ内の登録のロジックは書き直しを必要としませんが(カテゴリは今もなおグローバル一意識別子[GUID]によって識別される)、既存のライブラリは ESRIRegAsm.exe によって再登録される必要があります。そうしなければ、バージョン 9.3.1 より以降にインストールされた ArcGIS に対して動作しなくなります。

ESRIRegAsm.exe は DLL の登録と登録解除のためにセットアップ プログラムから、またはカスタム インストールの一部としてアセンブリからも呼びだすことができます。

  • ESRIRegAsm.exe は ~:\Program Files\Common Files\ArcGIS\bin フォルダに配置されています。
  • ESRIRegAsm.exe によって生成された XML データベースは .ecfg のファイルの拡張子を持ちます。それは解凍して読み込むことが可能な ZIP 形式で圧縮された XML ファイルです。
    ArcGIS Desktop に対し、.ecfg は ~:\Program Files\Common Files\ArcGIS\Desktop<version number>\Configration\CATID に配置されます。
    ArcGIS Engine に対し、.ecfg は ~:\Program Files\Common Files\ArcGIS\Engine<version number>\Configration\CATID に配置されます。
ESRIRegAsm.exe は Microsoft ユーティリティ(RegAsm.exe と RegSvr32.exe)の代わりに使用されなければなりません。

ESRIRegAsm.exe コマンド

コンポーネントは各製品とバ-ジョンを基準に維持されます。そのため、コンポーネントを登録する時に製品情報を与えなければなりません。ESRIRegAsm ユーティリティは、以下のコマンド ライン引数をサポートし、登録を制御しています。

ESRIRegAsm.exe <アセンブリ名>  /p:<製品名>  [オプション]
オプション 説明
 /u  登録解除
 /s  サイレント (ダイアログ ボックスを表示しない)
 /e  エラー コンソールを表示する
 /v:<製品のバージョン>  バージョン番号
 /regfile[:ファイル名]  レジストリ ファイルをエクスポートする
 /f:<カテゴリ情報ファイル>  カテゴリ マッピング ファイル(.xml または .reg)
 /w:<ディレクトリ パス>  作業ファイルを保存する場所

以下のテーブルは前述のコマンド ラインの各値を説明したものです。(いくつかの値はテーブルで示されているようにオプションです。)

 値  説明
 /p:   製品名の文字列。例えば Desktop または Engine。 製品が何も指定されない場合は、有効なインストール製品の一覧を表示するダイアログ ボックスが表示されます。
 <アセンブリ名> 登録が必要なネイティブ COM サーバ DLL またはマネージCOM アセンブリの完全パス。
 /v: 製品バージョンの文字列。例えば 10.0 。(オプション)
 /u   登録を解除する。/p: および /s(オプション)とともに使用可能。
 /s   サイレント。成功またはエラー時にダイアログ ボックスを表示しません。(オプション)
 /e  登録処理中のより詳しい情報を示すエラー コンソール を表示します。(オプション)
 /regfile[:ファイル名]  アセンブリのレジストリ エントリを含む、指定した.reg ファイルを生成します。これはマネージ アセンブリに対してのみ動作します。生成された .reg ファイルはカテゴリ情報を一切含みません。ファイル名が指定されない場合は、デフォルトでアセンブリと同じディレクトリに生成され、regの拡張子を伴い、アセンブリと同じ名前を持ちます。(オプション)
 /f:<カテゴリ マッピング ファイル> 特定のコンポーネント カテゴリ内への登録を必要とするクラスの一覧をリストにした 入力ファイル。このファイルは 以下のコード例で示されるようにスキーマをもった xml ファイル、または標準のレジストリ スクリプトです。カテゴリ マッピング ファイルは、コンポーネントが組み込みの登録ロジックにおいてコンポーネント カテゴリ レジストリ情報を含まない場合に限り必要です。(オプション)
 /w:<ディレクトリ パス>

後で .ecfg ファイルを生成するのに使用される .xml ファイルを、特定のファルダ内に生成します。 また、入力ファイルとして レジストリ スクリプトが提供される場合、このスクリプトは取り出されたコンポーネント カテゴリ情報とともに出力フォルダにもコピーされます。このオプションは、カスタムなインストールプログラムのために登録ファイルを作成したい人にとって便利です。(オプション)

以下のコード例は、XML カテゴリ マッピング ファイルを示しています。

[XML]

<?xml version="1.0"?> 
<Categories ver="1"> 
    <Category CATID="{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}">
      <Class CLSID="{1502B6C9-B57C-36E0-BCC7-C4CFDD058082}"/>
  </Category>
</Categories>

ユーティリティでは、明示的に製品の引数を与えます。製品が何も指定されない場合は、ArcGIS 製品の一覧を表示したダイアログ ボックスが表示されます。

Image

以下の例は、カスタム アセンブリ(MyAssembly)の登録と登録解除を行うユーティリティ コマンドの使い方を示しています。

アセンブリの登録

アセンブリの登録は以下のように行います。

  • Desktop ― ESRIRegAsm /p:desktop "C:\Test\MyAssembly.dll"
  • Engine ― ESRIRegAsm /p:engine "C:\Test\MyAssembly.dll"

登録する際に .dll ファイルの完全パスを与えます。 .dll ファイルが Desktop と Engine アプリケーションで使用される場合、.dll ファイルを別々に登録する必要があります。さらに、コロンの文法を含むコマンド ライン引数に対しては、コロンと文字との間にスペースを入れてはいけません。入れてしまった場合はエラーになります。

登録が成功したかどうかを示す、以下の通知ダイアログ ボックスが表示されます。

Image

アセンブリの登録解除

アセンブリの登録解除は以下のように行います。

  • Desktop ― ESRIRegAsm /p:desktop /u "C:\Test\MyAssembly.dll"
  • Engine ― ESRIRegAsm /p:engine /u "C:\Test\MyAssembly.dll"

登録解除が成功したかどうかを示す、以下の通知ダイアログ ボックスが表示されます。

Image

引数が、/p:のように後にコロン(:)を伴う場合、 コロン(:)と指定した文字列との間にスペースが入らないようにします。

参照:

COM コンポーネントを登録する方法

COM コンポーネント カテゴリへのクラスの登録


この文書は、ArcObjects Help for .NET Developers 内のトピック ESRIRegAsm utility を元に翻訳したものです。

メタデータ

種類

製品