Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Projekty VSIX to standardowy sposób pakowania rozszerzeń Visual Studio do dystrybucji. Niezależnie od tego, czy tworzysz rozszerzenie VisualStudio.Extensibility, czy rozszerzenie oparte na zestawie VSSDK, wynikiem jest plik .vsix, który użytkownicy instalują za pośrednictwem Menedżera rozszerzeń lub witryny Visual Studio Marketplace.
Important
W tym artykule opisano starsze szablony projektów VSIX i utrzymywanie istniejących projektów pakowania. W przypadku nowych projektów w programie Visual Studio 18.11 lub nowszym użyj Modern VSIX Project Template, który obsługuje pakowanie VSIX. Są to alternatywne przepływy pracy projektu, a nie kolejne kroki. Wybierz w oparciu o środowisko deweloperskie i istniejący projekt, a nie tylko wersję programu Visual Studio, dla której przeznaczone jest rozszerzenie.
Tworzenie projektu VSIX
Szablony projektów VSIX są dostępne w oknie dialogowym Tworzenie nowego projektu . Wyszukaj ciąg "VSIX", aby je znaleźć:
- Rozszerzenie VisualStudio.Extensibility — w przypadku rozszerzeń poza procesem przy użyciu nowego modelu rozszerzalności.
- VSIX Project — w przypadku rozszerzeń opartych na zestawie VSSDK lub pakowania wielu składników rozszerzenia.
- Rozszerzenie VisualStudio.Extensibility ze zgodnością zestawu VSSDK — w przypadku rozszerzeń hybrydowych korzystających z obu modeli.
- Pusty projekt VSIX — pusty kontener VSIX do tworzenia pakietów istniejących składników.
Tip
W przypadku nowych rozszerzeń zalecamy Visual Studio 18.11 lub nowszy oraz szablon Modern VSIX Project. Wybierz pozycję VisualStudio.Extensibility (Out-Of-Process) dla funkcji obsługiwanych przez ten model; wybierz zestaw VSSDK lub opcję hybrydową tylko wtedy, gdy potrzebujesz interfejsów API procesu. We wcześniejszych wersjach Visual Studio użyj szablonu rozszerzenia VisualStudio.Extensibility lub szablonu zgodnego z zestawem VSSDK, jeśli potrzebujesz interfejsów API zestawu VSSDK.
Rozszerzenia pakietu w projekcie VSIX
Note
Plik source.extension.vsixmanifest i poniższe kroki dotyczą tylko zestawu VSSDK i rozszerzeń hybrydowych. Rozszerzenia VisualStudio.Extensibility (poza procesem) generują metadane na podstawie ExtensionConfiguration.Metadata w kodzie — nie jest wymagany żaden plik manifestu.
Istniejące rozszerzenie lub składnik można spakować, opakowując je w projekt VSIX:
- Utwórz projekt VSIX przy użyciu dowolnego z powyższych szablonów.
- Plik
source.extension.vsixmanifestotwiera się w Manifest Designer. - Na karcie Elementy zawartości wybierz pozycję Nowe, aby dodać składniki.
- Na liście Typ wybierz typ zasobu do dodania (na przykład
Microsoft.VisualStudio.MefComponent,Microsoft.VisualStudio.VsPackage). - Ustaw pozycję Źródło na projekt W bieżącym rozwiązaniu i wybierz projekt.
Format VSIX obsługuje pakowanie pakietów VSPackages, składników MEF, zestawów, szablonów projektów, szablonów elementów, kontrolek przybornika i niestandardowych typów rozszerzeń.
Dodawanie zależności do pakietu VSIX
Możesz skonfigurować plik VSIX tak, aby wymagał innych rozszerzeń jako zależności. Po zainstalowaniu rozszerzenia przez użytkownika instalator sprawdza, czy istnieją wszystkie wymagane zależności.
Aby dodać zależność:
- Otwórz
source.extension.vsixmanifestw widoku Projekt. - Przejdź do karty Zależności i wybierz pozycję Nowy.
- Wybierz pozycję Zainstalowane rozszerzenie , aby wybrać zależność od już zainstalowanych rozszerzeń lub Plik w systemie plików , aby bezpośrednio odwołać się do innego pliku VSIX.
Wymaganie określonej wersji Visual Studio
Aby określić minimalny numer kompilacji Visual Studio, ustaw InstallationTarget zakres wersji:
<Installation>
<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,)" />
</Installation>
Note
Począwszy od Visual Studio 2026 r., brana pod uwagę jest tylko niższa granica zakresu wersji. Górna granica jest ignorowana ze względu na kompatybilność. Zobacz Zgodność rozszerzeń.
Tworzenie pakietu rozszerzeń
Pakiet rozszerzeń to zestaw rozszerzeń, które można zainstalować razem. Pakiety rozszerzeń umożliwiają udostępnianie ulubionych rozszerzeń współpracownikom lub utworzenie pakietu z zestawu rozszerzeń dla scenariusza.
Aby utworzyć pakiet rozszerzeń:
- Utwórz nowy projekt VSIX.
- Kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań i wybierz polecenie Dodaj>nowy element.
- Wybierz szablon Pakiet rozszerzeń . Spowoduje to dodanie pliku
.vsext. - Edytuj plik
.vsext, aby wyświetlić rozszerzenia do uwzględnienia:
{
"id": "MyExtensionPack",
"name": "My Extension Pack",
"description": "A curated set of extensions for my team",
"version": "1.0.0.0",
"extensions": [
{
"vsixId": "41858b2d-ff0b-4a43-80b0-f1b2d6084935",
"name": "AlignAssignments"
},
{
"vsixId": "42374550-426a-400e-96f9-237682e8dea6",
"name": "CopyAsHtml"
}
]
}
- Znajdź
vsixIdw witrynie Visual Studio Marketplace ↗ — otwórz stronę rozszerzenia i wybierz pozycję Kopiuj identyfikator. - Skompiluj i opublikuj projekt. Zobacz Publikowanie w Marketplace.
Note
Pakiety rozszerzeń mogą instalować wyłącznie rozszerzenia dostępne w witrynie Visual Studio Marketplace ↗ lub w prywatnej galerii.
Omówienie architektury rozszerzeń
Zrozumienie, w jaki sposób Visual Studio ładuje Twoje rozszerzenie, pomaga podejmować lepsze decyzje dotyczące pakietowania i wdrażania.
VisualStudio.Extensibility (poza procesem)
Rozszerzenia działające poza procesem macierzystym są uruchamiane w oddzielnym procesie niż Visual Studio i komunikują się przez kanał JSON-RPC:
┌─────────────────────┐ JSON-RPC ┌──────────────────────┐
│ Visual Studio │◄─────────────────────►│ Extension Process │
│ (DevEnv.exe) │ │ (.NET 8+) │
│ │ │ │
│ ┌───────────────┐ │ │ ┌────────────────┐ │
│ │ Extension Host│ │ │ │ Your Extension │ │
│ │ (manages │ │ │ │ Code │ │
│ │ lifecycle) │ │ │ └────────────────┘ │
│ └───────────────┘ │ └──────────────────────┘
└─────────────────────┘
Kluczowe cechy:
- Rozszerzenie działa na nowoczesnym środowisku .NET (8+)
- Awarie procesu rozszerzenia rzadziej powodują awarię programu Visual Studio
- Instalowanie/odinstalowywanie bez ponownego uruchamiania VS
- Instalacja dla użytkownika (bez uprawnień administratora)
VSSDK / hybryda (w procesie)
Rozszerzenia działające w procesie są ładowane bezpośrednio do procesu Visual Studio:
┌──────────────────────────────────────────┐
│ Visual Studio (DevEnv.exe) │
│ │
│ ┌────────────────┐ ┌────────────────┐ │
│ │ VS Core │ │ Your Extension │ │
│ │ Services │◄─┤ (.NET Framework│ │
│ │ │ │ or hybrid) │ │
│ └────────────────┘ └────────────────┘ │
└──────────────────────────────────────────┘
Kluczowe cechy:
- Pełny dostęp do wszystkich interfejsów API i usług VS
- Ograniczone do .NET Framework (chyba że jest hybrydowe)
- Błędy rozszerzeń mogą wpływać na stabilność programu Visual Studio
- Wymaga ponownego uruchomienia programu VS podczas instalacji/aktualizacji
Co znajduje się w pakiecie vsix
Plik .vsix jest archiwum ZIP ze standardową strukturą. Zawartość różni się w zależności od modelu rozszerzenia:
| Component | VisualStudio.Extensibility | VSSDK |
|---|---|---|
| Metadane rozszerzenia |
ExtensionConfiguration w kodzie |
source.extension.vsixmanifest |
| Pliki binarne rozszerzeń | Biblioteki DLL .NET 8+ | Biblioteki DLL platformy .NET Framework |
| Pliki lokalizacji | .vsextension/string-resources.json |
.vsixlangpack Pliki |
| Typy zawartości | [Content_Types].xml |
[Content_Types].xml |
| Manifest pakietu | Generowane automatycznie extension.vsixmanifest |
Utworzone ręcznie source.extension.vsixmanifest |