Co to jest format pliku VSIX?
.vsix to format pakietu instalacyjnego dla rozszerzeń Visual Studio. Wprowadzony wraz z Visual Studio 2010, zastąpił starszy model instalacji rozszerzeń .vsi oraz .msi. Format ten pozostaje aktualny aż do wersji Visual Studio 2022.
Strukturalnie plik .vsix jest archiwum Open Packaging Conventions - w zasadzie plikiem ZIP - zawierającym deskryptor metadanych extension.vsixmanifest, manifest OPC [Content_Types].xml oraz ładunek rozszerzenia: skompilowane zestawy .dll, komponenty MEF, pliki tabel poleceń .vsct, fragmenty kodu (snippets) i szablony.
Plik extension.vsixmanifest deklaruje identyfikator rozszerzenia, wersję, nazwę wyświetlaną oraz zakresy InstallationTarget, określające, które wersje i edycje (SKU) Visual Studio są obsługiwane przez rozszerzenie. Istnieją dwie wersje schematu manifestu: v1 (VS 2010-2011) oraz v2 (VS 2012 i nowsze, obecna).
Dwukrotne kliknięcie pliku .vsix w systemie Windows uruchamia program VSIXInstaller.exe, dostarczany wraz z Visual Studio, który weryfikuje i instaluje rozszerzenie. Rozszerzenia są również publikowane i wyszukiwane za pośrednictwem Visual Studio Marketplace pod adresem marketplace.visualstudio.com.
Visual Studio Code również używa pakietów .vsix dla własnych rozszerzeń, ale o innej strukturze wewnętrznej: rozszerzenia VS Code zawierają manifest package.json zamiast vsixmanifest, co sprawia, że obie rodziny są niekompatybilne mimo współdzielenia tego samego rozszerzenia pliku.
Ponieważ .vsix jest archiwum ZIP, narzędzia takie jak 7-Zip mogą otworzyć plik do ręcznej inspekcji. Magiczne bajty (50 4B 03 04 pod offsetem 0) są identyczne jak w każdym standardowym pliku ZIP; obecność pliku extension.vsixmanifest wewnątrz jest tym, co identyfikuje pakiet jako rozszerzenie Visual Studio.
Bezpieczeństwo
RYZYKO: MEDIUMPakiety VSIX zawierają skompilowane biblioteki .NET DLL, które wykonują się w procesie Visual Studio z pełnym zaufaniem. Złośliwe rozszerzenie może odczytywać kod źródłowy, dane uwierzytelniające, zmienne środowiskowe lub instalować trwałe backdoory. Instaluj tylko z Visual Studio Marketplace lub zaufanych źródeł. Pakiety w Marketplace są skanowane, ale nie daje to stuprocentowej pewności. W celu audytu bezpieczeństwa: zmień rozszerzenie na .zip i sprawdź pliki DLL przed instalacją.
Szczegóły formatu
w pigułce- Pakiet rozszerzenia VS Code - Rozszerzenia VS Code są również pakowane jako .vsix (za pomocą narzędzia vsce), ale używają manifestu package.json, a nie schematu vsixmanifest z Visual Studio.
Programy otwierające pliki VSIX
Szczegóły techniczne
specyfikacja| Format kontenera | OPC (Open Packaging Conventions) / archiwum ZIP z `[Content_Types].xml` i częściami relacji |
| Kompresja | DEFLATE (dla każdego wpisu ZIP); poszczególne wpisy mogą być przechowywane bez kompresji |
| Plik manifestu | `extension.vsixmanifest` - XML deklarujący ID rozszerzenia, wersję, wydawcę, InstallationTarget oraz ścieżki zasobów |
| Wersje schematu manifestu | v1 (VS 2010-2011) oraz v2 (VS 2012 i nowsze, obecna) |
| Magiczne bajty | `50 4B 03 04` pod offsetem 0 (standardowy nagłówek ZIP); odróżniany od innych plików ZIP przez wpis `extension.vsixmanifest` wewnątrz |
| Typ MIME | `application/vsix` |
| Typowy rozmiar pakietu | 50 KB - 50 MB; większość rozszerzeń 1-5 MB; duże pakiety językowe do 50 MB |
| Plik wykonywalny instalatora | `VSIXInstaller.exe`, dostarczany z Visual Studio; uruchamiany automatycznie po dwukrotnym kliknięciu pliku .vsix |
| Kanał dystrybucji | Visual Studio Marketplace (marketplace.visualstudio.com); także bezpośrednie pobieranie plików i wdrażanie korporacyjne |
| Model bezpieczeństwa | Marketplace weryfikuje podpisy Authenticode na plikach DLL wewnątrz; brak kryptograficznego podpisu na samym kontenerze ZIP |
| Uwaga dot. VS Code | VS Code również używa .vsix, ale z manifestem `package.json` zamiast `vsixmanifest`; oba formaty nie są wymienne |
| Specyfikacja docelowa | Element `InstallationTarget` w manifeście wymienia identyfikatory produktów VS i zakresy wersji dla zachowania kompatybilności |
| Wydano | 2010 (Visual Studio 2010; replaced older .vsi/.msi extension model) |
| Najnowsza wersja | VSIX manifest schema v2.0 (introduced VS 2012; current as of VS 2022) |
| Specyfikacja | learn.microsoft.com |
Konwersje VSIX
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki VSIX.