Share via


Visual Studio の拡張機能の構造

VSIX パッケージは、1 つ以上の Visual Studio 拡張機能と、拡張機能の分類とインストールのために Visual Studio で使用されるメタデータが含まれる .vsix ファイルです。 VSIX パッケージ形式は Open Packaging Conventions (OPC) 標準に従います。これは、ZIP ファイルを開くことができる任意のツールで開くことができることを意味します。

拡張プロジェクトは、いくつかの追加機能を備えた C# プロジェクトであり、一意です。 次のビデオでは、拡張プロジェクトの仕組みについて理解を深めるために、拡張プロジェクトについて説明します。

ファイル構造

VSIX Project w/Command (Community) テンプレートを使用して新しい拡張機能を作成する場合、ファイル構造は次のようになります。

File structure of a VSIX project.

.vsixmanifest ファイルがメイン ファイルです。 Visual Studio で使用される拡張機能に関する情報を含む XML ファイルです。 拡張機能のすべてのコンポーネントは .vsixmanifest ファイルに登録されています。 これは、VSIX プロジェクト内の唯一の必須ファイルです。

VSCommandTable.vsct ファイルは、コマンドが宣言されている場所です。 これは XML ファイルであり、ボタン コマンド、メニュー、キーボード ショートカット バインドなどの定義が含まれています。 このファイルは、その内容を出力 .dll の BLOB にコンパイルします。これは、Visual Studio でコマンド テーブルのメニュー構造全体の構築に使用されます。 このファイルは、コマンド テーブル内のコンポーネントのみを宣言します。コマンド呼び出しは処理されません。

*Package.cs ファイルは Package クラスであり、ほとんどの拡張機能のエントリ ポイントです。 ここでは、多くの場合、コマンド ハンドラー、ツール ウィンドウ、オプション ページ、サービス、およびその他のコンポーネントが登録されています。

コンパイル

プロジェクトは、現在のソリューション ビルド構成に依存する /bin/debug または /bin/release フォルダーにある .vsix ファイルにコンパイルされます。 Visual Studio 拡張機能の開発ワークロードには、VSIX プロジェクトのフレーバーを処理するための専用の MSBuild ターゲットとタスクが用意されています。

VSIX プロジェクトがビルドされると、自動的に実験用インスタンスにデプロイされます。 これは、VSIX プロジェクト設定で制御できます。

VSIX project properties.

実験用インスタンス

テストされていないアプリケーションによって Visual Studio 開発環境が変更されるのを防ぐため、VS SDK には実験に使用できる実験用領域が用意されています。 新しいアプリケーションの開発には Visual Studio を通常どおり使用しますが、それらの実行にはこうした実験用インスタンスを使用します。

VSIX パッケージが含まれているすべてのアプリケーションで、Visual Studio の実験用インスタンスをデバッグ モードで起動します。

特定のソリューション以外で Visual Studio の実験用インスタンスを開始する場合は、コマンド ウィンドウで次のコマンドを実行します。

devenv.exe /RootSuffix Exp

さらなる拡張機能の概念については、このツールキットに従う場合に役立つ便利なリソースを確認してください。