アドインの登録
更新 : 2007 年 11 月
アドインの作成後、アドイン マネージャでアクティブ化できるようにするには、アドインを Visual Studio に登録する必要があります。Visual Studio の以前のバージョンでは、レジストリ キーを使用してアドインを登録していましたが、現在では、XML ファイルを使用して行います。
メモ : |
---|
.Addin ファイルは、アドイン ウィザードを使用してアドインを作成すると、自動的に作成されます。次の内容は、アドインの登録ファイルを手動で作成または編集する場合のみ当てはまります。 |
Visual Studio .NET 2002 および Visual Studio .NET 2003 では、アセンブリ登録ツール (regasm.exe) を使用して、アドインのアセンブリを COM コンポーネントとして Windows に登録する必要がありました。また、アドインを [アドイン マネージャ] に表示するには、Windows レジストリのキーを使用して、アドインを Visual Studio に登録する必要もありました。
これらの手順は、Visual Studio 2005 から変更されました。regasm を使用して .NET アセンブリを Windows に登録する必要がなくなりました。代わりに、アセンブリの .DLL ファイルを .Addin ファイル拡張子の付いた XML ファイルと一緒に (このトピックで説明する) 特定のディレクトリに配置するだけです。この XML ファイルには、Visual Studio の [アドイン マネージャ] にアドインを表示するために必要な情報が記述されています。Visual Studio は起動時に、使用できる .Addin ファイルを検出するために .Addin ファイルの場所 (下記参照) を検索します。使用できる .Addin ファイルが検出された場合、この XML ファイルをクリックすると、内容が読み取られて、アドインを起動するのに必要な情報がアドイン マネージャに渡されます。
この簡略化された登録方法では、マネージ コード アドインの XCopy 形式のインストールを使用できます。すべてのファイルを適切な場所に配置すると、アドインは正しく機能します。また、アドインの登録設定を定義するコメント付き XML を使用すると、レジストリ キーを使用する場合よりもずっと簡単に情報を理解および編集できます。
.Addin ファイル
.Addin という拡張子の付いた新しい XML ファイルは、以前のアドインのレジストリ設定の代わりに使用します。アドイン ウィザードの完了時に、.Addin ファイルのコピーが 2 つ自動的に作成されます。
.Addin ファイルの場所 |
.DLL ファイルの場所 |
説明 |
---|---|---|
アドイン フォルダ \Documents and Settings\All Users\Shared Documents\Visual Studio 2008\Addins または \Documents and Settings\<user name>\My Documents\Visual Studio 2008\Addins など |
プロジェクト デバッグ フォルダ \My Documents\Visual Studio Projects\MyAddin1\MyAddin1\bin など |
デバッグ環境でアドインを実行する場合に使用します。常に、現在のビルド構成の出力パスを示します。 |
ルート プロジェクト フォルダ \My Documents\Visual Studio\Projects\MyAddin1 など |
ローカル パス (MyAddin1.dll) |
アドイン プロジェクトの配置に使用します。パスは、編集しやすくするためにプロジェクトに含まれており、XCopy 形式の配置のローカル パスで設定されます。 |
.Addin XML ファイルは、次のタグ付きセクションに分割されます。
設定 |
説明 |
---|---|
ホスト アプリケーション |
(必須) アドインを読み込むことができるアプリケーションの名前およびバージョン番号を指定します。 |
アセンブリ |
(必須) アドインのバイナリの場所を指定します。このフィールドは、ローカル パス、ネットワーク パス、または有効な URL に設定できます。 |
完全クラス名 |
(必須) アドインへの接続に使用するクラスの名前を指定します。 |
読み込み動作 |
(省略可能) アドインを起動時に読み込むか手動で読み込むかを定義します。 |
コマンドのプリロード |
(省略可能) アドインのプリロードされた状態、つまり、アドインで Commands.AddNamedCommand などのメソッドを使用してそのユーザー インターフェイス (UI: User Interface) を作成するかどうかを指定します。 |
コマンド ライン セーフ |
(省略可能) アドインと互換性のある Visual Studio のモード (コマンド ラインのみ、統合開発環境 (IDE: Integrated Development Environment) のみ、またはその両方) を指定します。 |
各設定の詳細を次に示します。
ホスト アプリケーション
ホスト アプリケーションの <Name> タグには、アプリケーションの名前が含まれます。これは、アプリケーションのタイトル バーに表示される名前または DTE.Name によって返される名前です。そのため、たとえば、Visual Studio の場合は、タグに "Microsoft Visual Studio" が含まれ、マクロ IDE の場合は、タグに "Microsoft Visual Studio Macros" が含まれます。
.Addin ファイルごとに複数のホスト アプリケーション値を指定できます。各値は、<HostApplication> タグ内で、<Name> タグで囲む必要があります。<Name> タグ以外に、各 <HostApplication> タグでは、そのアプリケーションのバージョン番号を <Version> タグで囲む必要もあります。たとえば、次のようにします。
<HostApplication>
<!-- First Host App name (required). -->
<Name>Microsoft Visual Studio</Name>
<Version>9.0</Version>
</HostApplication>
<HostApplication>
<!-- An additional supported program/version. -->
<Name>Microsoft Visual Studio Macros</Name>
<Version>9.0</Version>
</HostApplication>
または、<Version> の値で Visual Studio のすべてのバージョンを表す場合は、アスタリスク (*) を指定できます。階層におけるこれらのタグの位置については、このトピックで後述する「.Addin XML ファイルの例」を参照してください。
表示名
<Addin> タグの下にある <FriendlyName> タグは、[アドイン マネージャ] でこのアドインの [使用できるアドイン] 列に表示される文字列を指定します。使用例を次に示します。
<FriendlyName>My New Super Addin</FriendlyName>
階層におけるこのタグの位置については、このトピックで後述する「.Addin XML ファイルの例」を参照してください。
説明
<Addin> タグの下にある <Description> タグは、[アドイン マネージャ] でこのアドインの [説明] ボックスに表示される文字列を指定します。このタグの使用法の例を次に示します。
<Description>This add-in will change your life!</Description>
階層におけるこのタグの位置については、このトピックで後述する「.Addin XML ファイルの例」を参照してください。
[バージョン情報] ボックスの詳細
アドインの作成時に [バージョン情報] ダイアログ ボックスの設定を生成するオプションを選択すると、次のタグが .Addin ファイルに追加されます。このタグは、Visual Studio の [バージョン情報] ダイアログ ボックスでこのアドインに関して表示するテキストを指定します。このタグの使用法の例を次に示します。
<AboutBoxDetails>For add-in support, call 1-800-xxx-
xxxx.</AboutBoxDetails>
階層におけるこのタグの位置については、このトピックで後述する「.Addin XML ファイルの例」を参照してください。
[バージョン情報] ボックスのアイコン データ
アドインの作成時に [バージョン情報] ダイアログ ボックスの設定を生成するオプションを選択すると、次のタグが .Addin ファイルに追加されます。このタグには、Visual Studio の [バージョン情報] ダイアログ ボックスでこのアドインに関して表示するアイコンを指定するバイナリ データが含まれます。使用例を次に示します。
<AboutIconData>0000010006 . . . FFFF0000</AboutIconData>
階層におけるこのタグの位置については、このトピックで後述する「.Addin XML ファイルの例」を参照してください。
アセンブリ
<Addin> タグの下にある <Assembly> タグは、アドインのバイナリ ファイルの場所を指定します。このタグは、ローカル パス、ネットワーク パス ("file")、登録済みのアセンブリ名 ("assembly")、または有効な URL ("url") に設定できます。階層におけるこのタグの位置については、このトピックで後述する「.Addin XML ファイルの例」を参照してください。
URL でアドインの場所を指定する例を次に示します。この場合、src パラメータは、アドインの DLL の Web ベースの場所を示すように url に設定されます。
<Assembly src="url">http://somewebsite.com/MyAddin4.dll</Assembly>
ローカル パスで場所を指定する例を次に示します。この場合、src パラメータは、アドインの DLL のローカルの場所を示すように file に設定されます。
<Assembly src="file">C:\Documents and Settings\jdoe\Application Data\Microsoft\Visual Studio\8.0\AddIns\MyAddin4.dll</Assembly>
ローカル パスの例を次に示します。この場合、src パラメータは、アドインの DLL の Web ベースの場所を示すように assembly に設定されます。
<Assembly src="assembly">BookshelfDefineAddin</Assembly>
完全クラス名
<FullClassName> タグは、クラス名を含む名前空間など、アドインへの接続に使用するクラスの完全名を指定します。使用例を次に示します。
<FullClassName>MyAddin4.Connect</FullClassName>
階層におけるこのタグの位置については、このトピックで後述する「.Addin XML ファイルの例」を参照してください。
読み込み動作
<LoadBehavior> タグは、アドインを IDE の起動時に読み込むか、手動で起動するかを定義します。<LoadBehavior> タグは、<Addin> タグの下にあります。使用例を次に示します。
<LoadBehavior>1</LoadBehavior>
<LoadBehavior> タグの使用は省略可能ですが、いつアドインを読み込むかを明示的に定義する場合は、このタグを使用することをお勧めします。
値 |
説明 |
---|---|
0 |
アドインは、IDE の起動時に読み込まれないため、手動で起動する必要があります。 |
1 |
アドインは IDE の起動時に自動的に読み込まれます。 |
4 |
アドインは、コマンド ラインからビルド スイッチ (devenv /build) を指定して devenv を起動するときに読み込まれます。 |
階層におけるこのタグの位置については、このトピックで後述する「.Addin XML ファイルの例」を参照してください。
コマンドのプリロード
<CommandPreload> タグは、アドインをプリロードする必要があるかどうかを指定します。プリロードすると、.Addin ファイルをディスク上に配置した後、最初に Visual Studio を起動するときにアドインが読み込まれます。使用例を次に示します。
<CommandPreload>1</CommandPreload>
このタグを使用して、アドインを Visual Studio の起動後に読み込む必要があることを指定できます。これにより、アドインは、コマンド バー ボタンなどの必要なユーザー インターフェイス要素を作成したり、既定のアドイン設定の作成などの最初のみ行う他の初期化タスクを実行したりできます。その後、アドインはすぐにアンロードされ、アドインで作成されたコマンドの 1 つをユーザーが実行されたときに読み込まれます。このとき、アドインは、必要に応じて IDE の一連のすべてのインスタンスで読み込まれます。
値 |
説明 |
---|---|
0 |
アドインは、ユーザーが [アドイン マネージャ] を使用して起動するか、起動時に読み込むように設定されるまで読み込まれません。 |
1 |
アドインは、.Addin XML ファイルがディスク上に配置された後、最初に Visual Studio を起動するときに自動的に読み込まれます。 |
実装した OnConnection メソッドをチェックし、OnConnection の 2 番目の引数で指定した接続の種類が ext_cm_UISetup かどうかを確認できます。確認できた場合は、AddNamedCommand メソッドまたは AddControl メソッドを使用して、必要なコマンドの配置を実行できます。
階層におけるこのタグの位置については、このトピックで後述する「.Addin XML ファイルの例」を参照してください。
コマンド ライン セーフ
省略可能な <CommandLineSafe> タグは、コマンド ライン ビルドや同様の操作の実行時など、devenv コマンド ラインで起動した場合にアドインが UI を表示しないようにデザインされているかどうかを示します。UI が表示されないようにするには、アドイン ウィザードで [アドインでモーダル UI を表示せずに、コマンド ライン ビルドで使用できるようにする] オプションを選択します。また、アドインと互換性のある Visual Studio のモード (コマンド ラインのみや IDE のみなど) も指定します。使用例を次に示します。
<CommandLineSafe>0</CommandLineSafe>
値 |
説明 |
---|---|
0 |
アドインがコマンド ライン セーフではなく、UI を表示できることを指定します。 |
1 |
アドインがコマンド ライン セーフで、UI を表示しないことを指定します。 |
階層におけるこのタグの位置については、このトピックで後述する「.Addin XML ファイルの例」を参照してください。
.Addin XML ファイルの例
完全な .Addin XML ファイルの例を次に示します。前述のタグの階層構造と位置が示されています。
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<Extensibility
xmlns="https://schemas.microsoft.com/AutomationExtensibility">
<HostApplication>
<Name>Microsoft Visual Studio Macros</Name>
<Version>9.0</Version>
</HostApplication>
<HostApplication>
<Name>Microsoft Visual Studio</Name>
<Version>9.0</Version>
</HostApplication>
<Addin>
<FriendlyName>My great new add-in.</FriendlyName>
<Description>This add-in does it all.</Description>
<AboutBoxDetails>Copyright 2008.</AboutBoxDetails>
<AboutIconData>0000 . . . FFFF0000</AboutIconData>
<Assembly>MyNewAddin.dll</Assembly>
<FullClassName>MyNewAddin.Connect</FullClassName>
<LoadBehavior>1</LoadBehavior>
<CommandPreload>1</CommandPreload>
<CommandLineSafe>0</CommandLineSafe>
</Addin>
</Extensibility>