VS-Code-Extension im Marketplace veröffentlichen mit vsce
Publisher-Konto, Zugriffstoken, Pflichtfelder in package.json, vsce package und vsce publish, Vorabversionen, Automatisierung und die zusätzliche Veröffentlichung auf Open VSX.
Eine VS-Code-Extension veröffentlichen Sie mit dem offiziellen Kommandozeilenwerkzeug vsce. Sie brauchen dafür einen Publisher im Visual Studio Marketplace und ein Zugriffstoken. Nach vsce login lädt vsce publish die Extension hoch, und nach einer kurzen automatischen Prüfung ist sie in VS Code auffindbar. Wer auch Editoren erreichen will, die nicht auf den Microsoft-Marketplace zugreifen, veröffentlicht dieselbe Extension zusätzlich auf Open VSX.
Wie Sie die Extension selbst bauen, zeigt der Artikel VS-Code-Extension erstellen mit Yeoman.
Der Ablauf im Überblick
- vsce installieren
- Zugriffstoken erstellen in Azure DevOps
- Publisher anlegen im Marketplace
- package.json und README vorbereiten
- Lokal paketieren und testen mit
vsce package - Veröffentlichen mit
vsce publish - Optional: zusätzlich auf Open VSX
Schritt 1: vsce installieren
npm install --global @vscode/vsce
Alternativ nehmen Sie das Paket als Entwicklungsabhängigkeit ins Projekt auf und rufen es über npx vsce auf. Das hat den Vorteil, dass alle Beteiligten und die CI dieselbe Version nutzen. Das ältere Paket ohne den Namensraum @vscode sollten Sie nicht mehr verwenden.
Schritt 2: Zugriffstoken erstellen
Der Marketplace nutzt zur Authentifizierung Azure DevOps. So erstellen Sie ein persönliches Zugriffstoken (Personal Access Token):
- Mit einem Microsoft-Konto bei Azure DevOps anmelden und, falls noch nicht vorhanden, eine Organisation anlegen.
- In den Benutzereinstellungen „Personal access tokens“ öffnen und ein neues Token erstellen.
- Bei der Organisation „All accessible organizations“ wählen.
- Unter den Berechtigungen den Bereich „Marketplace“ mit dem Recht „Manage“ aktivieren.
- Ablaufdatum festlegen und das Token sofort sicher speichern, es wird nur einmal angezeigt.
Die häufigste Fehlerquelle sind ein falscher Organisationsbereich oder fehlende Marketplace-Rechte. Dann meldet vsce einen Autorisierungsfehler. Microsoft passt die Anmeldeverfahren für Azure DevOps immer wieder an. Prüfen Sie deshalb in der aktuellen Dokumentation, ob für Ihr Konto inzwischen auch eine Anmeldung ohne persönliches Token, etwa über Azure-Anmeldedaten, vorgesehen ist.
Schritt 3: Publisher anlegen
Ein Publisher ist die Identität, unter der Ihre Extensions erscheinen. Sie legen ihn auf der Verwaltungsseite des Visual Studio Marketplace mit demselben Microsoft-Konto an. Die Publisher-ID ist dauerhaft und Teil der Extension-Kennung, etwa meinpublisher.wortzaehler. Den Anzeigenamen können Sie später ändern.
Anschließend melden Sie sich in der Kommandozeile an:
vsce login meinpublisher
vsce fragt nach dem Token und speichert es lokal. Optional können Sie den Publisher mit einer eigenen Domain verifizieren lassen. Ihr Eintrag erhält dann ein Verifizierungszeichen, was Vertrauen schafft.
Schritt 4: package.json und README vorbereiten
Diese Felder sollten vor der ersten Veröffentlichung gesetzt sein:
| Feld | Zweck |
|---|---|
name |
technischer Name, Teil der Kennung, nur Kleinbuchstaben ohne Leerzeichen |
displayName |
Anzeigename im Marketplace |
description |
ein Satz, der in Suchergebnissen erscheint |
version |
Versionsnummer im Format Major.Minor.Patch |
publisher |
Ihre Publisher-ID |
engines.vscode |
niedrigste unterstützte VS-Code-Version |
icon |
Pfad zu einem PNG-Bild, mindestens 128 × 128 Pixel, kein SVG |
repository |
Link zum Quellcode, sonst warnt vsce |
license |
Lizenzkennung, dazu eine LICENSE-Datei |
categories, keywords |
bessere Auffindbarkeit in der Suche |
Die README.md wird zur Detailseite im Marketplace. Beschreiben Sie Funktionen, Befehle, Einstellungen und bekannte Einschränkungen, gern mit Screenshots oder animierten Bildern. Bilder müssen über HTTPS eingebunden sein. SVG-Grafiken akzeptiert der Marketplace in der README nur eingeschränkt, etwa von bekannten Badge-Diensten. Die CHANGELOG.md erscheint als eigener Reiter.
Welche Lizenz zu Ihrer Extension passt, erklärt der Artikel Open-Source-Lizenz für Plugins wählen.
Was ins Paket gehört
Die Datei .vscodeignore bestimmt, was nicht ins Paket kommt, ähnlich wie .gitignore. Typische Einträge sind Quellcode bei gebündelten Extensions, Testdateien, Konfigurationsdateien und node_modules, wenn ein Bundler alle Abhängigkeiten einbaut. Mit vsce ls sehen Sie vorab, welche Dateien im Paket landen würden.
Eine .vsix-Datei ist ein ZIP-Archiv, das jeder entpacken kann. API-Schlüssel, .env-Dateien oder Zugangsdaten haben darin nichts verloren. Prüfen Sie die Dateiliste vor jeder Veröffentlichung. Der Marketplace scannt hochgeladene Pakete zwar auf Schadcode und bekannte Geheimnisse, verlassen sollten Sie sich darauf nicht.
Schritt 5: Lokal paketieren und testen
vsce package
Der Befehl erzeugt eine Datei wie wortzaehler-1.0.0.vsix. Installieren Sie sie in einer normalen VS-Code-Instanz über die Erweiterungsansicht („Aus VSIX installieren …“) oder per Kommandozeile mit code --install-extension wortzaehler-1.0.0.vsix. So prüfen Sie, ob die Extension auch außerhalb der Entwicklungsumgebung funktioniert, insbesondere wenn ein Bundler im Spiel ist.
Eine .vsix-Datei eignet sich auch, um Extensions intern weiterzugeben, ohne sie öffentlich zu machen.
Schritt 6: Veröffentlichen
vsce publish
vsce paketiert die Extension erneut und lädt sie hoch. Die Version können Sie direkt mit erhöhen lassen:
vsce publish patch # 1.0.0 -> 1.0.1
vsce publish minor # 1.0.0 -> 1.1.0
vsce publish 2.0.0 # feste Version
Dabei passt vsce die package.json an und legt, sofern ein Git-Repository vorhanden ist, einen Commit mit Tag an. Nach dem Upload prüft der Marketplace das Paket automatisch. Meist ist die Extension nach wenigen Minuten in der Suche zu finden.
Vorabversionen
Mit vsce publish --pre-release veröffentlichen Sie eine Vorabversion. Nutzer können in VS Code gezielt auf diese Version wechseln. Da der Marketplace nur Versionen im Format Major.Minor.Patch kennt, empfiehlt die Dokumentation eine Konvention, etwa gerade Minor-Versionen für reguläre Releases und ungerade für Vorabversionen.
Automatisch veröffentlichen per CI
vsce liest das Token aus der Umgebungsvariable VSCE_PAT. In GitHub Actions oder anderen CI-Systemen hinterlegen Sie es als geheime Variable und führen bei einem neuen Tag npx vsce publish aus. Das sorgt für reproduzierbare Releases und verhindert, dass versehentlich lokale Dateien ins Paket geraten. Das Ablaufdatum des Tokens sollten Sie sich notieren, sonst schlägt die nächste Veröffentlichung überraschend fehl.
Zusätzlich auf Open VSX veröffentlichen
Open VSX ist ein herstellerunabhängiges Verzeichnis unter dem Dach der Eclipse Foundation. Viele Editoren auf VS-Code-Basis beziehen ihre Extensions von dort, weil die Nutzungsbedingungen des Microsoft-Marketplace dessen Verwendung auf Microsoft-Produkte beschränken.
So veröffentlichen Sie dort:
- Mit einem GitHub-Konto bei open-vsx.org anmelden und die Publisher-Vereinbarung der Eclipse Foundation akzeptieren.
- In den Einstellungen ein Zugriffstoken erzeugen.
- Einmalig einen Namensraum anlegen, der Ihrer Publisher-ID entspricht:
npx ovsx create-namespace meinpublisher -p <token>. - Veröffentlichen:
npx ovsx publish -p <token>oder eine fertige Datei mitnpx ovsx publish wortzaehler-1.0.0.vsix -p <token>.
In der CI liest ovsx das Token aus der Variable OVSX_PAT. Am einfachsten ist es, die .vsix einmal zu bauen und dieselbe Datei an beide Verzeichnisse zu übergeben.
Nach der Veröffentlichung
- Statistiken prüfen: Die Verwaltungsseite zeigt Installationen und Bewertungen.
- Issues pflegen: Verlinken Sie in
package.jsonüberbugsIhren Issue-Tracker, damit Fehlerberichte dort landen. - Kompatibilität im Blick behalten: VS Code erscheint in kurzen Abständen. Testen Sie regelmäßig mit der Insiders-Version.
- Zurückziehen bei Bedarf:
vsce unpublish meinpublisher.wortzaehlerentfernt die Extension vollständig.
Allgemeine Fragen zu Stores, Lizenzen und Pflege über die Jahre behandelt der Bereich Add-ons veröffentlichen und pflegen.
Fragen und Antworten
- Kostet die Veröffentlichung im VS Code Marketplace etwas?
- Nein. Publisher-Konto und Veröffentlichung sind kostenlos. Sie benötigen ein Microsoft-Konto und für das Token eine Azure-DevOps-Organisation, die ebenfalls ohne Kosten angelegt werden kann.
- Kann ich eine Extension wieder zurückziehen?
- Ja. In der Verwaltungsseite des Marketplace oder mit vsce unpublish entfernen Sie eine Extension. Bedenken Sie, dass Nutzer, die sie installiert haben, sie behalten, aber keine Updates mehr erhalten. Einzelne fehlerhafte Versionen ersetzen Sie besser schnell durch eine korrigierte neue Version.
- Warum lehnt vsce mein Paket ab?
- Häufige Gründe sind fehlende Pflichtfelder wie publisher oder engines.vscode, eine unveränderte Vorlagen-README, Bilder in der README, die nicht über HTTPS eingebunden sind, oder ein ungeeignetes Icon. Die Fehlermeldung nennt meist das konkrete Feld.
- Muss ich auch bei Open VSX veröffentlichen?
- Nicht zwingend, aber es erweitert die Reichweite. Editoren auf VS-Code-Basis, die den Microsoft-Marketplace nicht verwenden dürfen oder wollen, beziehen Extensions häufig aus Open VSX. Dieselbe .vsix-Datei lässt sich in beiden Verzeichnissen veröffentlichen.
Weiterlesen
- Extension erstellen
Mit yo code zum lauffähigen Gerüst: welche Vorlagen es gibt, was in package.json und extension.ts steht, wie Sie einen eigenen Befehl bauen und im Extension Development Host testen.
- Veröffentlichen
Stores und Prüfprozesse, Versionsnummern und Changelog, Lizenzen und Bezahlmodelle: was nach dem letzten Commit kommt und warum ein Add-on nie ganz fertig ist.
- Lizenz für Plugins wählen
GPL, MIT und Apache 2.0 im Vergleich: was die Lizenzen erlauben und verlangen, welche Plattform welche Lizenz voraussetzt und wie Sie eine Lizenz sauber im Projekt hinterlegen.