VSIX ファイル形式とは?
.vsix は Visual Studio 拡張機能用のインストーラーパッケージ形式です。Visual Studio 2010 で導入され、それまでの .vsi および .msi による拡張機能インストールモデルを置き換えました。この形式は Visual Studio 2022 に至るまで現行の形式として使用されています。
構造的には、.vsix ファイルは Open Packaging Conventions アーカイブ(本質的には ZIP)であり、extension.vsixmanifest メタデータ記述子、[Content_Types].xml OPC マニフェスト、および拡張機能のペイロード(コンパイル済みの .dll アセンブリ、MEF コンポーネント、コマンドテーブル .vsct ファイル、スニペット、テンプレートなど)が含まれています。
extension.vsixmanifest は、拡張機能の ID、バージョン、表示名、およびその拡張機能がサポートする Visual Studio のバージョンと SKU を指定する InstallationTarget 範囲を宣言します。マニフェストスキーマには、v1(VS 2010-2011)と v2(VS 2012 以降、現行)の 2 つのバージョンが存在します。
Windows で .vsix をダブルクリックすると、Visual Studio に同梱されている VSIXInstaller.exe が起動し、拡張機能の検証とインストールが行われます。拡張機能は、marketplace.visualstudio.com にある Visual Studio Marketplace を通じて公開・検索することもできます。
Visual Studio Code も独自の拡張機能に .vsix パッケージを使用しますが、内部構造が異なります。VS Code の拡張機能は vsixmanifest ではなく package.json マニフェストを持つため、同じファイル拡張子を共有しているものの、これら 2 つのファミリーに互換性はありません。
.vsix は ZIP アーカイブであるため、7-Zip などのツールでファイルを開いて手動で検査できます。マジックバイト(オフセット 0 の 50 4B 03 04)は標準的な ZIP ファイルと同一であり、内部に extension.vsixmanifest が存在するかどうかで Visual Studio 拡張機能パッケージであると識別されます。
セキュリティと安全性
リスク: MEDIUMVSIX パッケージには、Visual Studio プロセス内で完全な信頼を持って実行されるコンパイル済みの .NET DLL が含まれています。悪意のある拡張機能は、ソースコード、資格情報、環境変数を読み取ったり、永続的なバックドアを設置したりする可能性があります。Visual Studio Marketplace または信頼できるソースからのみインストールしてください。Marketplace のパッケージはスキャンされていますが、万全ではありません。セキュリティ監査のためには、インストール前に拡張子を .zip に変更して DLL を検査してください。
形式の詳細
概要- VS Code 拡張機能パッケージ - VS Code 拡張機能も(vsce ツールを介して).vsix としてパッケージ化されますが、Visual Studio の vsixmanifest スキーマではなく package.json マニフェストを使用します。
VSIX ファイルを開くプログラム
技術的詳細
詳細仕様| コンテナ形式 | OPC (Open Packaging Conventions) / `[Content_Types].xml` とリレーションシップパーツを含む ZIP アーカイブ |
| 圧縮 | DEFLATE (エントリごとの ZIP)。個別のエントリは非圧縮で格納される場合もあります |
| マニフェストファイル | `extension.vsixmanifest` - 拡張機能 ID、バージョン、パブリッシャー、InstallationTarget、およびアセットパスを宣言する XML |
| マニフェストスキーマバージョン | v1 (VS 2010-2011) および v2 (VS 2012 以降、現行) |
| マジックバイト | オフセット 0 に `50 4B 03 04` (標準 ZIP ヘッダー)。内部の `extension.vsixmanifest` エントリによって他の ZIP と区別されます |
| MIME タイプ | `application/vsix` |
| 一般的なパッケージサイズ | 50 KB - 50 MB。ほとんどの拡張機能は 1-5 MB、大規模な言語パックなどは最大 50 MB |
| インストーラー実行ファイル | Visual Studio に同梱されている `VSIXInstaller.exe`。.vsix ファイルのダブルクリックで自動的に起動します |
| 配布チャネル | Visual Studio Marketplace (marketplace.visualstudio.com)。直接のファイルダウンロードや企業内デプロイも可能 |
| セキュリティモデル | Marketplace は内部の DLL の Authenticode 署名を検証しますが、ZIP コンテナ自体には暗号署名はありません |
| VS Code に関する注意 | VS Code も .vsix を使用しますが、`vsixmanifest` の代わりに `package.json` マニフェストを使用します。両者に互換性はありません |
| ターゲット指定 | マニフェスト内の `InstallationTarget` 要素に、互換性のある Visual Studio 製品 ID とバージョン範囲がリストされます |
| リリース日 | 2010 (Visual Studio 2010; replaced older .vsi/.msi extension model) |
| 最新バージョン | VSIX manifest schema v2.0 (introduced VS 2012; current as of VS 2022) |
| 仕様書 | learn.microsoft.com |
VSIX の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。VSIX ファイルについて最初の質問をしてみましょう。