VSIX パッケージの構造

VSIX パッケージは、 .vsix 1 つ以上の Visual Studio 拡張機能と、Visual Studio が拡張機能の分類とインストールに使用するメタデータを含むファイルです。 そのメタデータは、VSIX マニフェストと [Content_Types].xml ファイルに含まれています。 VSIX パッケージには、ローカライズされたセットアップ テキストを提供するための Extension.vsixlangpack ファイルが 1 つ以上含まれている場合もあります。また、依存関係をインストールする追加の VSIX パッケージが含まれる場合があります。

VSIX パッケージ形式は、Open Packaging Conventions (OPC) 標準に従っています。 パッケージには、バイナリとサポート ファイルと、[ Content_Types].xml ファイルとマニフェスト ファイルが .vsix 含まれています。 1 つの VSIX パッケージに、複数のプロジェクトの出力が含まれることがあります。または、独自のマニフェストを持つ複数のパッケージが含まれる場合さえあります。

Note

[RFC2396] で定義されているように、VSIX パッケージに含められるファイルの名前には、スペースも、Uniform Resource Identifier (URI) 内で予約されている文字も含めないでください。

VSIX マニフェスト

VSIX マニフェストには、インストールする拡張機能に関する情報が含まれており、VSIX スキーマに従います。 詳細については、VSIX 拡張スキーマ 2.0 リファレンスを参照してください

VSIX マニフェストは、ファイルに含まれるときに名前 extension.vsixmanifest を付ける .vsix 必要があります。

コンテンツ

VSIX パッケージには、テンプレート、ツールボックス項目、VSPackage、Visual Studio でサポートされている、その他任意の種類の拡張機能が含まれている場合があります。

言語パック

VSIX パッケージには、ローカライズされたテキストをインストール時に提供するための Extension.vsixlangpack ファイルが 1 つ以上含まれている場合があります。 詳細については、「VSIX パッケージのローカライズ」を参照してください。

依存関係と参照

1 つの VSIX パッケージには、参照として他の VSIX パッケージを含めることができます。 これらの他のパッケージそれぞれのために、独自の VSIX マニフェストが含まれている必要があります。

依存関係がある拡張機能をユーザーがインストールしようとすると、インストーラーにより、必要なアセンブリがユーザー システムにインストールされていることが確認されます。 必要なアセンブリが見つからない場合、拡張機能と更新は、不足しているアセンブリの一覧を表示します。

拡張機能マニフェストに 1 つ以上の Dependency 要素が含まれている場合、Extensions と 更新 は、各参照のマニフェストをシステムにインストールされている拡張機能と比較し、参照先の拡張機能がまだインストールされていない場合はインストールします。 参照されている拡張機能の以前のバージョンがインストールされている場合は、新しいバージョンに置き換えられます。

複数プロジェクト ソリューションのプロジェクトに、同じソリューション内の別のプロジェクトへの参照が含まれる場合、VSIX パッケージにはそのプロジェクトの依存関係が含められます。 内部プロジェクトのための参照を選択してから、[プロパティ] ウィンドウで [VSIX プロパティに含まれる出力グループ]BuiltProjectOutputGroup に設定すると、この動作をオーバーライドできます。

参照されているアセンブリのサテライト DLL を VSIX パッケージに含めるには、[VSIX プロパティに含まれる出力グループ]SatelliteDllsProjectOutputGroup を追加します。

インストール場所

インストール時に、拡張機能と更新は、VSIX パッケージの内容を下%LocalAppData%\Microsoft\VisualStudio\{version}\Extensionsのフォルダー内で検索します。

既定では、%LocalAppData% はユーザー固有のディレクトリであるため、インストールは現在のユーザーにのみ適用されます。 ただし、マニフェストの要素を AllUsers 設定 Trueすると、拡張機能がインストールされ ..\{VisualStudioInstallationFolder}\Common7\IDE\Extensions 、コンピューターのすべてのユーザーが使用できるようになります。

[Content_Types].xml

[Content_Types].xmlファイルは、展開された.vsixファイル内のファイルの種類を識別します。 Visual Studio では、パッケージのインストール時にこのファイルが使用されますが、ファイル自体はインストールされません。 このファイルの詳細については、「[Content_types].xml ファイルの構造」を参照してください。

Open Packaging Conventions (OPC) 標準では、[Content_Types].xml ファイルは必須となっています。 OPC の詳細については、「 OPC: データをパッケージ化するための新しい標準」を参照してください。