アドインの登録
作成したアドインをアドイン マネージャーでアクティブ化できるようにするには、アドインを Visual Studio に登録する必要があります。この操作は、.addin ファイル名拡張子を持つ XML ファイルを使用して行います。
この XML ファイルには、Visual Studio のアドイン マネージャーにアドインを表示するために必要な情報が記述されています。Visual Studio は起動時に、使用できる .addin ファイルを検出するために .addin ファイルの場所を検索します。使用できる .addin ファイルが検出された場合、この XML ファイルをクリックすると、内容が読み取られて、アドインを起動するのに必要な情報がアドイン マネージャーに渡されます。
.addin ファイルは、アドイン ウィザードを使用してアドインを作成すると、自動的に作成されます。このトピックの情報を使用すると、.addin ファイルを手動で作成することもできます。
ファイルの位置
アドイン ウィザードによって、次のような .addin ファイルのコピーが 2 つ自動的に作成されます。
.Addin ファイルの場所 |
.Dll ファイルの場所 |
Description |
---|---|---|
ルート プロジェクト フォルダー \<ドキュメント>\Visual Studio 2010\Projects\MyAddin1\MyAddin1\ |
ローカル パス (MyAddin1.dll) |
アドイン プロジェクトの配置に使用します。編集しやすくするためにプロジェクトに含まれており、XCopy 形式の配置用のローカル パスが設定されます。 |
アドイン フォルダー \<ドキュメント>\Visual Studio 2010\Addins\ または <共有ドキュメントの場所>\Addins\ |
プロジェクト デバッグ フォルダー (例: \ Documents\Visual Studio 2010 Projects\MyAddin1\MyAddin1\bin\) |
デバッグ環境でアドインを実行する場合に使用します。常に、現在のビルド構成の出力パスを示します。 |
別のコンピューターにアドインをインストールするには、Visual Studio がアドインをチェックする場所に .addin ファイルを配置する必要があります。これらの場所は、 オプション のダイアログ ボックスで、 アドイン セキュリティ のページの 環境 ノードに一覧表示されます。詳細については、「アドインのセキュリティ」を参照してください。
アドインが格納された .dll ファイルは、クライアント コンピューター上の任意の場所にインストールできます。ただし、.addin ファイルと一緒に配置することをお勧めします。
[!メモ]
.addin ファイルの <Assembly> 要素は、アドインのバイナリが格納された .dll ファイルを指している必要があります。
.Addin ファイル
.addin XML ファイルは、次のタグ付きセクションに分割されます。
セクション |
Description |
---|---|
ホスト アプリケーション |
(必須) アドインを読み込むことができるアプリケーションの名前およびバージョン番号を指定します。 |
アドイン |
(必須) アドインを説明する要素を格納します。 |
ツール オプション ページ |
(省略可能) アドインを構成できる [オプション] ダイアログ ボックスのページを指定します。子ノードは、[オプション] ページのカテゴリとサブカテゴリに加え、そのアセンブリ名と完全クラス名を指定します。 |
次の要素は、<Addin> セクションの子です。
要素 |
Description |
---|---|
[バージョン情報] ボックスの詳細 |
(省略可能) Visual Studio の [バージョン情報] ダイアログ ボックスでこのアドインに関して表示するテキストを指定します。 |
[バージョン情報] ボックスのアイコン データ |
(省略可能) Visual Studio の [バージョン情報] ダイアログ ボックスでこのアドインに関して表示するアイコンを指定するバイナリ データを格納します。 |
[バージョン情報] ボックスのアイコンの場所 |
(省略可能) Visual Studio の [バージョン情報] ダイアログ ボックスでこのアドインに関して表示するアイコンの絶対パスまたは相対パスを指定します。 |
Assembly |
(必須) アドインのバイナリの場所を指定します。このフィールドは、ローカル パス、ネットワーク パス、または URL に設定できます。 |
コマンド ライン セーフ |
(省略可能) アドインと互換性のある Visual Studio のモード (たとえば、コマンド ラインのみ、統合開発環境 (IDE: Integrated Development Environment) のみ、またはその両方) を指定します。 |
コマンドのプリロード |
(省略可能) アドインのプリロードされた状態、つまり、アドインで Commands.AddNamedCommand などのメソッドを使用してその UI を作成するかどうかを指定します。 |
完全クラス名 |
(必須) アドインへの接続に使用するクラスの名前を指定します。 |
読み込み動作 |
(省略可能) アドインを起動時に読み込むか手動で読み込むかを定義します。 |
各設定の詳細を次に示します。ここで説明する多くの要素の階層における位置の詳細については、このトピックで後述する「.Addin XML ファイルの例」を参照してください。
ホスト アプリケーション
Host Application セクションの <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>10.0</Version>
</HostApplication>
<HostApplication>
<!-- An additional supported program/version. -->
<Name>Microsoft Visual Studio Macros</Name>
<Version>10.0</Version>
</HostApplication>
または、<Version> の値で Visual Studio のすべてのバージョンを表す場合は、アスタリスク (*) を指定できます。
表示名
<Addin> 要素の下にある <FriendlyName> 要素は、アドイン マネージャーの [使用できるアドイン] 列に表示される文字列を指定します。次に例を示します。
<FriendlyName>My New Super Addin</FriendlyName>
Description
<Addin> 要素の下にある <Description> 要素は、アドイン マネージャーの [説明] ボックスに表示される文字列を指定します。次に例を示します。
<Description>This add-in will change your life!</Description>
[バージョン情報] ボックスの詳細
アドインの作成時に [バージョン情報] ダイアログ ボックスの設定を生成するオプションを選択すると、次の要素が .addin ファイルに追加されます。この要素は、Visual Studio の [バージョン情報] ダイアログ ボックスに表示するテキストを指定します。次に例を示します。
<AboutBoxDetails>For add-in support, call 1-800-xxx-
xxxx.</AboutBoxDetails>
[バージョン情報] ボックスのアイコン データ
アドインの作成時に [バージョン情報] ダイアログ ボックスの設定を生成するオプションを選択すると、次の要素が .addin ファイルに追加されます。この要素は、Visual Studio の [バージョン情報] ダイアログ ボックスに表示するアイコンを指定するバイナリ データを指定します。次に例を示します。
<AboutIconData>0000010006 . . . FFFF0000</AboutIconData>
Assembly
<Addin> 要素の下にある <Assembly> 要素は、アドインのバイナリ ファイルの場所を指定します。この要素は、相対パス、絶対パス ("file")、登録済みのアセンブリ名 ("assembly")、または URL ("url") に設定できます。
絶対パスの場所の例を次に示します。この場合、src パラメーターは、アドインの DLL の場所を示すように file に設定されます。
<Assembly src="file">C:\Documents and Settings\jdoe\Application Data\Microsoft\Visual Studio\10.0\AddIns\MyAddin4.dll</Assembly>
登録された場所を示す例を次に示します。この場合、src パラメーターは、登録されたアドインの DLL を示すように assembly に設定されます。
<Assembly src="assembly">BookshelfDefineAddin</Assembly>
URL の場所を示す例を次に示します。この場合、src パラメーターは、アドインの DLL の Web ベースの場所を示すように url に設定されます。
<Assembly src="url">http://somewebsite.com/MyAddin4.dll</Assembly>
完全クラス名
<FullClassName> 要素は、アドインへの接続に使用するクラスの完全名を指定します。これには、そのクラスを含む名前空間を含めます。次に例を示します。
<FullClassName>MyAddin4.Connect</FullClassName>
読み込み動作
<LoadBehavior> 要素は、アドインを IDE の起動時に読み込むか、手動で起動するかを定義します。<LoadBehavior> 要素は <Addin> 要素の下に指定します。次に例を示します。
<LoadBehavior>1</LoadBehavior>
<LoadBehavior> の使用は省略可能ですが、いつアドインを読み込むかを明示的に定義する場合は、これを使用することをお勧めします。
値 |
Description |
---|---|
0 |
アドインは、IDE の起動時に読み込まれないため、手動で起動する必要があります。 |
1 |
アドインは IDE の起動時に自動的に読み込まれます。 |
4 |
アドインは、コマンド プロンプトでビルド スイッチ (devenv /build) を使用して devenv を起動するときに読み込まれます。 |
コマンドのプリロード
<CommandPreload> 要素は、アドインをプリロードする必要があるかどうかを指定します。プリロードを指定すると、.addin ファイルをインストールした後、最初に Visual Studio を起動するときにアドインが読み込まれます。次に例を示します。
<CommandPreload>1</CommandPreload>
この要素を使用して、アドインを Visual Studio の起動後に読み込む必要があることを指定できます。これにより、アドインは、コマンド バー ボタンなどの必要な UI 要素を作成したり、既定のアドイン設定の作成などの最初のみ行う他の初期化タスクを実行したりできます。次に、アドインはアンロードされ、アドインで作成されたコマンドの 1 つをユーザーが実行したときに読み込まれます。その後、アドインは必要に応じて読み込まれます。
値 |
Description |
---|---|
0 |
アドインは、ユーザーがアドイン マネージャーを使用して起動するか、起動時に読み込むように設定されるまで読み込まれません。 |
1 |
アドインは、.addin ファイルがインストールされた後、最初に Visual Studio を起動するときに自動的に読み込まれます。 |
実装した OnConnection メソッドをチェックし、OnConnection の 2 番目の引数で指定した接続の種類が ext_cm_UISetup かどうかを確認できます。確認できた場合は、AddNamedCommand メソッドまたは AddControl メソッドを使用して、必要なコマンドの配置を実行できます。
コマンド ライン セーフ
省略可能な <CommandLineSafe> 要素は、コマンド ライン ビルドや同様の操作の実行時など、コマンド プロンプトで起動した場合にアドインが UI を表示しないようにデザインされているかどうかを示します。UI が表示されないようにするには、アドイン ウィザードで [アドインでモーダル UI を表示しない] を選択します。 また、アドインと互換性のある Visual Studio のモード (コマンド ラインのみや IDE のみなど) も指定します。次に例を示します。
<CommandLineSafe>0</CommandLineSafe>
値 |
Description |
---|---|
0 |
アドインがコマンド ライン セーフではなく、UI を表示できることを指定します。 |
1 |
アドインがコマンド ライン セーフで、UI を表示しないことを指定します。 |
ツール オプション ページ
省略可能な <ToolsOptionsPage> 要素は、ユーザーがアドインを構成できるように [オプション] ページを指定します。子ノードは、ページに表示するカテゴリとサブカテゴリ、および [オプション] ページのアセンブリ名と完全クラス名を指定します。この要素の階層を次の例に示します。
<ToolsOptionsPage>
<Category Name="Text Editor">
<SubCategory Name="General">
<Assembly>"MyFilePath\MyAddInOptionPage.dll"</Assembly>
<FullClassName>"MyNamespace.MyAddInOptionPage"</FullClassName>
</SubCategory>
</Category>
</ToolsOptionsPage>
.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>10.0</Version>
</HostApplication>
<HostApplication>
<Name>Microsoft Visual Studio</Name>
<Version>10.0</Version>
</HostApplication>
<Addin>
<FriendlyName>My great new add-in.</FriendlyName>
<Description>This add-in does it all.</Description>
<AboutBoxDetails>Copyright 2010.</AboutBoxDetails>
<AboutIconData>0000 . . . FFFF0000</AboutIconData>
<Assembly>MyNewAddin.dll</Assembly>
<FullClassName>MyNewAddin.Connect</FullClassName>
<LoadBehavior>1</LoadBehavior>
<CommandPreload>1</CommandPreload>
<CommandLineSafe>0</CommandLineSafe>
</Addin>
</Extensibility>