Hvad er VSIX-filformatet?
.vsix er formatet for installationspakker til Visual Studio-udvidelser. Det blev introduceret med Visual Studio 2010 og erstattede den ældre .vsi- og .msi-model for installation af udvidelser. Formatet er fortsat aktuelt til og med Visual Studio 2022.
Strukturelt er en .vsix-fil et Open Packaging Conventions-arkiv - i bund og grund en ZIP - der indeholder en extension.vsixmanifest-metadatadeskriptor, et [Content_Types].xml OPC-manifest og selve udvidelsens indhold: kompilerede .dll-assemblies, MEF-komponenter, kommandotabel-.vsct-filer, kodestumper (snippets) og skabeloner.
extension.vsixmanifest deklarerer udvidelsens ID, version, visningsnavn og InstallationTarget-områder, der angiver, hvilke Visual Studio-versioner og SKU'er udvidelsen understøtter. Der findes to versioner af manifest-skemaet: v1 (VS 2010-2011) og v2 (VS 2012 og senere, nuværende).
Ved at dobbeltklikke på en .vsix på Windows startes VSIXInstaller.exe, som følger med Visual Studio, og som validerer og installerer udvidelsen. Udvidelser udgives og findes også via Visual Studio Marketplace på marketplace.visualstudio.com.
Visual Studio Code bruger også .vsix-pakker til sine egne udvidelser, men med et strukturelt anderledes indre: VS Code-udvidelser indeholder et package.json-manifest i stedet for vsixmanifest, hvilket gør de to familier inkompatible, selvom de deler samme filendelse.
Da .vsix er et ZIP-arkiv, kan værktøjer som 7-Zip åbne filen til manuel inspektion. De magiske bytes (50 4B 03 04 ved offset 0) er identiske med enhver standard ZIP-fil; det er tilstedeværelsen af extension.vsixmanifest indeni, der identificerer en pakke som en Visual Studio-udvidelse.
Sikkerhed og tryghed
RISIKO: MEDIUMVSIX-pakker indeholder kompilerede .NET DLL-filer, der kører i Visual Studio-processen med fuld tillid. En ondsindet udvidelse kan læse kildekode, legitimationsoplysninger, miljøvariabler eller installere permanente bagdøre. Installer kun fra Visual Studio Marketplace eller betroede kilder. Pakker på Marketplace scannes, men det er ikke fejlfrit. Ved sikkerhedsrevision: omdøb til .zip og inspicer DLL-filer før installation.
Formatdetaljer
kort fortalt- VS Code Extension Package - VS Code-udvidelser er også pakket som .vsix (via vsce-værktøjet), men bruger package.json-manifestet, ikke Visual Studio vsixmanifest-skemaet.
Programmer der åbner VSIX-filer
Tekniske detaljer
dyb specifikation| Containerformat | OPC (Open Packaging Conventions) / ZIP-arkiv med `[Content_Types].xml` og relationsdele |
| Komprimering | DEFLATE (pr. post i ZIP); individuelle poster kan gemmes ukomprimeret |
| Manifestfil | `extension.vsixmanifest` - XML der deklarerer udvidelses-ID, version, udgiver, InstallationTarget og aktivstier |
| Manifest-skemaversioner | v1 (VS 2010-2011) og v2 (VS 2012 og senere, nuværende) |
| Magic bytes | `50 4B 03 04` ved offset 0 (standard ZIP-header); adskilles fra andre ZIP-filer ved `extension.vsixmanifest`-posten indeni |
| MIME-type | `application/vsix` |
| Typisk pakkestørrelse | 50 KB - 50 MB; de fleste udvidelser 1-5 MB; store sprogpakker op til 50 MB |
| Installationsprogram | `VSIXInstaller.exe`, bundlet med Visual Studio; startes automatisk ved dobbeltklik på en .vsix-fil |
| Distributionskanal | Visual Studio Marketplace (marketplace.visualstudio.com); også direkte fildownload og virksomhedsdistribution |
| Sikkerhedsmodel | Marketplace validerer Authenticode-signaturer på DLL-filer indeni; ingen kryptografisk signatur på selve ZIP-containeren |
| VS Code-bemærkning | VS Code bruger også .vsix, men med `package.json`-manifest i stedet for `vsixmanifest`; de to kan ikke ombyttes |
| Målspecifikation | `InstallationTarget`-elementet i manifestet lister VS-produkt-ID'er og versionsområder for kompatibilitet |
| Udgivet | 2010 (Visual Studio 2010; replaced older .vsi/.msi extension model) |
| Seneste version | VSIX manifest schema v2.0 (introduced VS 2012; current as of VS 2022) |
| Specifikation | learn.microsoft.com |
VSIX-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om VSIX-filer.