FAQ
アドイン概念の詳細

ナレッジ番号:2611 | 登録日:2023/05/29 | 更新日:2023/12/28

サマリ

このトピックでは、基本的なファイル構造や既知のフォルダの場所、管理者設定といった、アドイン概念の詳細について説明します。

内容


遅延読み込み

デフォルトでは、アドイン ボタンやツールに関連するアセンブリは、ツールバーやメニュー上の対応したアイテムがユーザーによってクリックされない限り、読み込まれません。この振る舞いは、アプリケーション メモリや他のリソースの節約に役立ちます。アドイン ボタンやツールの "Enabled(使用の可否)" ステートは、コード内の OnUpdate メソッドで制御されるため、初期の状態では、それらは使用可能な状態として表示されます。もし、ボタンやツールの初期の Enabled ステートをより厳重に制御したい場合は、デフォルトの振舞いをオーバーライドし、XML(Extensible Markup Language)の OnDemand 属性を false に設定して、スタートアップ時に強制的にアイテムを読み込む必要があります。

ファイル構造

アドインは、ファイルとフォルダーのコレクションで、Zip アーカイブで便宜的にパッケージ化されたものです。ユーザーや ESRI ArcGIS Add-in Installation Utility によって認識されやすくするため、.zip の代わりに .esriAddIn 拡張子を使用しています。たとえば、Windows エクスプローラー、Web サイト、あるいは E メール上でアドインをダブルクリックすると、アドイン インストール ユーティリティが自動的にアドインをコンピューターにインストールし、既知のフォルダーに配置します。

アドイン アーカイブのルート レベルには、必ず設定ファイル(Confing.xml)が存在します。このファイルは、アドインについて説明し、そのカスタマイズ内容を宣言します。このファイルのローカライズ バージョンも、アドインがサポートする言語につき一つずつ存在します。より詳細な情報については、アドインのローカライズをご参照ください。

ほとんどのアドインには、インストール フォルダーが存在します。インストール フォルダーにあるすべてのコンテンツは、ユーザーのコンピューターの一時フォルダに解凍されます。インストール フォルダーの主な目的は、アドインの実行可能コード(実行部)を保持することです。たとえば、設定ファイルに定義されているにしても、そのカスタムな振る舞いは、関連アセンブリで定義されています。もし、アドインが多言語をサポートしている場合は、Microsoft の標準モデルにしたがって、言語サブフォルダーにサテライト アセンブリが格納されます。.NET アドインでは、実行部分は読み込まれる前にディスク上に展開されていなければなりません。

インストール フォルダーには、フォルダーやファイルを追加ですることができます。これは、アドインの一部としてデータを送付したい場合などに大変便利です。Visual Studio プロジェクトを通してデータを追加したい場合には、次のスクリーン ショットにみられるように、[出力ディレクトリにコピー] プロパティを “常にコピーする” に設定します。

Image

設定ファイルで宣言される多くのコントロールは、それらと関連するグラフィックスを持ちます。設定ファイルで参照されるすべてのグラフィックスは、アドイン アーカイブにパッケージ化されなければいけません。ライブラリ内に、リソースとしてそれらを組み込まないようにしてください。グラフィックスは、通常、アーカイブのルート レベルにあるイメージ フォルダー内に追加されますが、フォルダー名の変更は可能です。グラフィックスは、アーカイブから直接読み込まれますが、アセンブリのように解凍される必要はないので、インストール フォルダー下にイメージ フォルダーを配置しないようにしてください。

設定ファイルにあるグラフィックを参照するとき、設定ファイルからイメージ ファイルまでの相対パスを指定しなければなりません。たとえば、次のコードでは、ボタンはアドイン アーカイブのルート レベルにあるイメージ サブフォルダー内の .png ファイルを参照しています。

<Button
  id="Acme_ShowDVBtn"
  
  tip="Show's the Parcel Editing Window"
  message="Shows the Parcel Editing Window."
  caption="Show Acme Window"
  category="Acme"
  image="Images\ShowDVBtn.png">

次の図は、アドインのファイル構造を示しています。

Image

既知のフォルダの場所

アドインは、スタートアップ時に、各ユーザの Desktop バージョンごとに存在する既知のフォルダから自動的に検出されます。たとえば、次のようなディレクトリが既知のフォルダの場所として使用されます。
  • Vista/7: C:\Users\<ユーザー名>\Documents\ArcGIS\AddIns\Desktop10.0
  • XP: C:\Documents and Settings\<ユーザー名>\My Documents\ArcGIS\AddIns\Desktop10.0

アドインは、ESRI Add-In Utility (EsriRegAddIn.exe) およびアドイン マネージャー ダイアログによって、自動的に追加・削除されるため、ユーザー自身がフォルダの実際の場所について考慮する必要は基本的にはありません。アドイン マネージャー ダイアログは、ネットワーク共有フォルダなど、ユーザーが独自の既知フォルダを追加することを可能にします。

さらに、アドインは、インストール フォルダーのコンテンツを自動的に一時フォルダに解凍します。たとえば、次のようなディレクトリが一時フォルダの場所として使用されます。

  • Vista/7: C:\Users\<ユーザー名>\AppData\Local\ESRI\Desktop10.0\AssemblyCache
  • XP: C:\Documents and Settings\<ユーザー名>\Local Settings\Application Data\ESRI\Desktop10.0\AssemblyCache
このデータは、アドイン フレームワークによって、アドインがシステム上にすでにインストールされていないということが検出されると、自動的に取り除かれます。

AssemblyCache フォルダーを確認するには、Windows エクスプローラでフォルダ- オプションを変更する必要があります。"隠しファイル、隠しフォルダー、および隠しドライブを表示する" にチェックを入れ、"保護されたオペレーティング システム ファイルを表示しない" のチェックを外します。

管理者設定

管理者は、そのユーザ-に対し、HKEY_LOCAL_MACHINE\SOFTWARE\ESRI\Desktop10.0\Settings キー(64 ビット OS の場合は、HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ESRI\Desktop10.0\Settings キー)内にある BlockAddIns(REG_DWORD)値を手動で設定することにより、アドイン セキュリティ レベルを制御することができます。

0 - デジタル署名の有無にかかわらず、アドインを読み込む。

1 - 信頼された認証機関によってデジタル署名されたアドインのみ読み込む。

2 - Esri によって公開されたアドインのみ読み込む。

3 - 管理者フォルダ(下記説明)にあるアドインおよび Esri によって公開されたアドインのみ読み込む。

4 - このアプリケーションでは、いかなるアドインも読み込み/実行しない。

管理者設定より、さらに安全なセキュリティ設定に変更するためには、ユーザーはアドイン マネージャーを使用します。たとえば、管理者がすべてのアドインを読み込み可能であると規定した場合、ユーザーはこれをオーバーライドして、信頼されたアドインのみを読み込むか、あるいは Esri アドインのみを読み込むことができます。同様にして、管理者が信頼されたアドインのみ読み込むことができると規定した場合は、ユーザーは Esri アドインのみを読み込む設定にしか変更することができません。また、管理者がすべてのアドインの読み込みををブロックするよう設定している場合は、ユーザーが変更することはできません。

管理者は、AdminAddInLock(REG_DWORD)値を追加し、そのデータを「1」と入力することによって、すでに設定してあるセキュリティ レベルをユーザーがオーバーライドすることを禁止することができます。

Image

管理者は、レジストリを使用して、アドイン検索用の追加フォルダを指定することもできます。この機能は、管理者がアドインへのユーザー アクセスを制御するために使用されます。管理者フォルダーを追加するには、Settings キーの下に、新規の "AddInFolders" キーを手動で入力し、そのキーに文字列値を追加します。値の名前に、アドインを検索するためのフォルダー パスを指定します。

Image


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

メタデータ

種類

製品

バージョン