Freigeben über


Erweiterungsmanifest-Referenz

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Jede Erweiterung verfügt über eine JSON-Manifestdatei, die grundlegende Informationen zur Erweiterung definiert. Die Datei definiert außerdem, wie sie die Oberfläche erweitern und verbessern kann. In diesem Artikel erfahren Sie, wie Sie ein Manifest für Ihre Erweiterung für Azure DevOps erstellen.

Tipp

Sehen Sie sich unsere neueste Dokumentation zur Erweiterungsentwicklung mithilfe des Azure DevOps-Erweiterungs-SDK an.

Erstellen Sie eine Datei mit dem Namen vss-extension.json im Stammverzeichnis Des Erweiterungsordners. Diese Datei enthält erforderliche Attribute, z. B. die ID der Erweiterung und ihre Installationsziele, wo sie ausgeführt werden kann. Sie definiert auch die Beiträge, die Ihre Erweiterung leistet.

Sehen Sie sich das folgende Beispiel eines typischen Manifests an:

{
    "manifestVersion": 1,
    "id": "tools",
    "version": "0.1.0",
    "name": "Fabrikam Tools",
    "publisher": "fabrikam",
    "description": "Awesome tools to help you and your team do great things everyday.",
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ],
    "icons": {
        "default": "images/fabrikam-logo.png"
    },
    "scopes": [
        "vso.work",
        "vso.code_write",
        "vso.build_execute"
    ],
    "categories": [
        "Azure Boards"
    ],
    "branding": {
        "color": "rgb(34, 34, 34)",
        "theme": "dark"
    },
    "content": {
        "details": {
            "path": "readme.md"
        },
        "license": {
            "path": "eula.md"
        }
    },
    "links": {
        "getstarted": {
            "uri": "https://www.fabrikam-fiber-inc.com/help/getstarted"
        },
        "support": {
            "uri": "https://www.fabrikam-fiber-inc.com/support"
        }
    },
    "repository": {
        "type": "git",
        "uri": "https://github.com/fabrikam-fiber-inc/myextension"
    },
    "contributions": [
        {
            "id": "showCommits",
            "type": "ms.vss-web.action",
            "description": "Adds a menu action from builds grid to show associated items.",
            "targets": [
                "ms.vss-build-web.completed-build-menu"
            ],
            "properties": {
                "title": "View associated items",
                "uri": "launch.html"
            }
        }
    ],
    "files": [
        {
            "path": "launch.html",
            "addressable": true
        },        
        {
            "path": "node_modules/vss-web-extension-sdk/lib",
            "addressable": true,
            "packagePath": "lib"
        }
    ]
}

Informationen zu Eingaben finden Sie unter ...

Erforderliche Attribute

Die folgenden Eigenschaften sind erforderlich:

Eigenschaft BESCHREIBUNG Hinweise
manifestVersion Eine Zahl, die der Version des Manifestformats entspricht. Sollte 1 sein.
ID Der Bezeichner der Erweiterung. Th ID ist eine Zeichenfolge, die zwischen Erweiterungen desselben Herausgebers eindeutig sein muss. Sie muss mit einem alphabetischen oder numerischen Zeichen beginnen und "A" bis "Z", "a" bis "z", "0" bis "9" und "-" (Bindestrich) enthalten. Beispiel: sample-extension.
version Eine Zeichenfolge, die die Version einer Erweiterung angibt. Sollte im Format major.minor.patchvorliegen, z. B 0.1.2 . oder 1.0.0. Sie können auch eine vierte Zahl für das folgende Format hinzufügen: 0.1.2.3
Name Ein kurzer, menschlich lesbarer Name der Erweiterung. Auf 200 Zeichen beschränkt. Beispiel: "Fabrikam Agile Board Extension".
Herausgeber- Der Bezeichner des Herausgebers. Dieser Bezeichner muss mit dem Bezeichner übereinstimmen, unter dem die Erweiterung veröffentlicht wird. Siehe Erstellen und Verwalten eines Herausgebers.
Kategorien Array von Zeichenfolgen, die die Kategorien darstellen, zu denen Ihre Erweiterung gehört. Mindestens eine Kategorie muss bereitgestellt werden, und es gibt keine Beschränkung, wie viele Kategorien Sie einschließen können. Gültige Werte: Azure Repos, , Azure Boards, Azure Pipelines, Azure Test Plansund Azure Artifacts.

Hinweise:
    - Verwenden Sie version >=0.6.3 der tfx-cli, wenn Sie die Erweiterung programmgesteuert veröffentlichen.
    – Wenn Sie die Azure DevOps Extension Tasks-Erweiterung zum Veröffentlichen verwenden, stellen Sie sicher, dass die Version >= 1.2.8 ist>. Möglicherweise müssen Sie das Erweiterungsupdate aufgrund der letzten Bereichsänderungen genehmigen.
    – Die oben genannten Kategorien sind nativ in Visual Studio Marketplace und Azure DevOps Server 2019 & vorhanden.
Ziele Die Produkte und Dienste, die von Ihrer Integration oder Erweiterung unterstützt werden. Weitere Informationen finden Sie unter Installationsziele. Ein Array von Objekten, wobei jedes Objekt ein id Feld enthält, das eine der folgenden Werte angibt:
    - Microsoft.VisualStudio.Services (Erweiterungen, die mit Azure DevOps arbeiten),
    - Microsoft.TeamFoundation.Server (Erweiterung, die mit Azure DevOps Server funktioniert),
    - Microsoft.VisualStudio.Services.Integration,
    - Microsoft.TeamFoundation.Server.Integration (Integrationen, die mit Azure DevOps Server arbeiten)

Beispiele für erforderliche Attribute

{
    "manifestVersion": 1,
    "id": "tools",
    "version": "0.1.0",
    "name": "Fabrikam Tools",
    "publisher": "fabrikam",
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ]
}

Optionale Attribute

Laufzeitattribute

Eigenschaft BESCHREIBUNG Hinweise
Bereiche Ein Array von Autorisierungsbereichen (Zeichenfolgen) mit Berechtigungen, die von Ihrer Erweiterung benötigt werden. Zum Beispiel bedeutet vso.work und vs.code_write, dass Ihre Erweiterung schreibgeschützten Zugriff auf Arbeitselemente und Lese-/Schreibzugriff auf Quellcode (und zugehörige Ressourcen) benötigt. Die Bereiche werden dem Benutzer bei der Installation Ihrer Erweiterung präsentiert. Weitere Informationen finden Sie in der vollständigen Liste der Bereiche.
Forderungen Ein Array von Anforderungen (Zeichenfolgen), die die Fähigkeiten auflistet, die von Ihrer Erweiterung benötigt werden. Gibt beispielsweise an, api-version/3.0 dass Ihre Erweiterung Version 3.0-APIs verwendet und daher nicht in älteren Produkten ausgeführt werden kann, die diese Version nicht unterstützen. Weitere Informationen finden Sie in der vollständigen Liste der Anforderungen.
BaseUri (Optional) Basis-URL für alle relativen URLs, die durch die Beiträge der Erweiterung angegeben werden. Beispiel: https://myapp.com/{{account.name}}/ Diese Eigenschaft sollte leer bleiben, wenn der Inhalt Ihrer Erweiterung im Paket mit Ihrer Erweiterung enthalten ist.
Beiträge Ein Array von Beiträgen zum System.
Beitragsarten Ein Array von durch die Erweiterung definierten Beitragstypen
{
    "scopes": [
        "vso.work",
        "vso.code_write",
        "vso.build_execute"
    ],
    "demands": [
        "api-version/3.0"
    ],
    "contributions": [
        {
            "id": "showCommits",
            "type": "ms.vss-web.action",
            "description": "Adds a menu action from builds grid to show associated items.",
            "targets": [
                "ms.vss-build-web.completed-build-menu"
            ],
            "properties": {
                "title": "View associated items",
                "uri": "launch.html"
            }
        }
    ]
}

Ermittlungsattribute

Die folgenden optionalen Eigenschaften helfen Benutzern, Ihre Erweiterung zu entdecken und zu erfahren:

Eigenschaft BESCHREIBUNG Hinweise
Beschreibung Einige Sätze, die die Erweiterungen beschreiben. Auf 200 Zeichen beschränkt. Die Beschreibung sollte eine kurze Präsentation Ihrer Erweiterung sein – ein paar Zeilen, um Ihre Erweiterung auf dem Marketplace zu beschreiben und Benutzer dazu zu bringen, sie zu installieren. Siehe das Beispiel unten
Ikonen Wörterbuch der Symbole, die die Erweiterung darstellen. Gültige Schlüssel: default (128 x 128 Pixel) vom Typ BMP, GIF, EXIF, JPG, PNG und TIFF). Andere Schlüssel wie large (512 x 512 Pixel) können in Zukunft unterstützt werden. Der Wert jedes Schlüssels ist der Pfad zur Symboldatei in der Erweiterung.
Tags Ein Array von Text-Tags, damit Benutzer Ihre Erweiterung finden können. Beispiele: agile, , project managementtask timer, usw.
Screenshots Array von Bildern, die nicht in Ihre Inhalte einbezogen werden konnten. Screenshots sind wertvoller, wenn sie in Ihren Inhalten enthalten sind, und sollten dort verwendet werden, um eine Seite mit Qualitätsmarktdetails für Ihre Erweiterung zu erstellen. Verwenden Sie Screenshots für weniger wichtige Bilder, die nicht in Ihren Inhalten enthalten sind. Jedes Bild sollte 1366 x 768 Pixel groß sein. Das path jedes Elements ist der Pfad zur Datei in der Erweiterung.
Inhalt Wörterbuch von Inhaltsdateien, die Ihre Erweiterung für Benutzer beschreiben. Jede Erweiterung sollte soliden Inhalt enthalten. So zeigen Sie Benutzern, was Ihre Erweiterung tun kann. Machen Sie es reich, konsumierbar, und fügen Sie bei Bedarf Screenshots hinzu. Fügen Sie eine overview.md Datei als Basisinhaltsteil hinzu. Jede Datei wird als GitHub-Format "Flavored Markdown" angenommen. Der path jedes Elements ist der Pfad zur Markdown-Datei in der Erweiterung. Gültige Schlüssel: details. Andere Schlüssel können in Zukunft unterstützt werden.
Links Wörterbuch mit Links, die Benutzern helfen, mehr über Ihre Erweiterung zu erfahren, Support zu erhalten und zu verschieben. Gültige Schlüssel: getstarted - erste Schritte, Wie sie eingerichtet oder verwendet werden. learn – tiefere Inhalte, damit Benutzer Ihre Erweiterung oder Ihren Dienst besser verstehen können. license – Endbenutzer-Lizenzvertrag. privacypolicy - Datenschutzrichtlinie für eine Erweiterung. support – Erhalten Sie Hilfe und Support für eine Erweiterung. Der Wert jedes Schlüssels ist ein Objekt mit einem uri Feld, bei dem es sich um die absolute URL des Links handelt.
Repository Wörterbuch der Eigenschaften, die das Quellcode-Repository für die Erweiterung beschreiben Gültige Schlüssel: type - Repositorytyp. Beispiel: git. uri - Absolute URL des Repositorys.
Kennzeichen Aneinanderreihung von Links zu externen Metadaten-Badges wie TravisCI, Appveyor und so weiter, von den genehmigten Badges-Seiten Gültige Schlüssel: href – Link, zu dem der Benutzer navigiert, wenn er das Badge auswählt. uri - Die absolute URL des anzuzeigenden Signalbilds. description – Beschreibung des Badges, die beim Hovern angezeigt wird.
Branding Wörterbuch der markenbezogenen Eigenschaften. Gültige Schlüssel: color - Primärfarbe der Erweiterung oder des Herausgebers; kann ein Hexadex (#ff00ff), RGB (rgb(100,200,50)) oder unterstützte HTML-Farbnamen (Blau) sein. theme - ergänzt die Farbe; Verwenden Sie dunkel für dunkle Brandingfarben oder hell für hellere Brandingfarben.

Mache eine Erweiterung öffentlich

Standardmäßig sind alle Erweiterungen im Azure DevOps Marketplace privat. Sie sind aus der öffentlichen Ansicht ausgeblendet und sind nur für den Herausgeber und bestimmte Konten sichtbar, mit denen der Herausgeber sie geteilt hat. Wenn Ihr Herausgeber überprüft wird, können Sie Ihre Erweiterung öffentlich machen, indem Sie das Public Kennzeichen in Ihrem Erweiterungsmanifest festlegen:

{
    "galleryFlags": [
        "Public"
    ]
}            

Oder:

{
    "public": true
}            

Weitere Informationen finden Sie unter "Package/Publish/Install".

Markieren einer Erweiterung, die in der Vorschau angezeigt werden soll

Wenn Ihre Erweiterung für Benutzer auf dem Marketplace bereit ist, während Sie noch an einigen Fehlern arbeiten oder eine Funktion hinzufügen, können Sie sie als preview markieren.

{
    "galleryFlags": [
        "Preview"
    ]
}            

Markieren Sie eine Erweiterung als kostenpflichtige Vorschau

Wenn Sie Ihre Erweiterung auf dem Marketplace verkaufen möchten, markieren Sie sie als kostenpflichtige Vorschau. Eine als kostenlose Erweiterung markierte Erweiterung kann nicht in kostenpflichtig geändert werden.

{
    "galleryFlags": [
        "Paid",
        "Preview"
    ]
}            

Markieren Sie eine Verlängerung als bezahlt

Wenn Sie Ihre Erweiterung auf dem Marketplace verkaufen möchten, können Sie sie mit der Paid Kennzeichnung und dem __BYOLENFORCED tag markieren (beginnt mit zwei Unterstrichen):

{
    "galleryFlags": [
        "Paid"        
    ],
     "tags": [        
        "__BYOLENFORCED"
    ]
}            

Sowohl das Flag Paid als auch das __BYOLENFORCED-Tag müssen vorhanden sein, um eine Erweiterung als kostenpflichtig im Marketplace zu markieren. Bring-Your-Own-License (BYOL) bedeutet, dass der Herausgeber der Erweiterung den Abrechnungs- und Lizenzierungsmechanismus für die Erweiterung bereitstellt, da sie von Microsoft für Azure DevOps-Erweiterungen nicht bereitgestellt wird. Alle kostenpflichtigen Erweiterungen sind erforderlich, um Datenschutzrichtlinien, Supportrichtlinien und einen Endbenutzer-Lizenzvertrag zu definieren. Publisher müssen Inhalte für die Registerkarte "Preise" im Marketplace wie folgt bereitstellen:

{
    "content": {
        "details": {
            "path": "overview.md"
        }, 
        "pricing": {
            "path": "pricing.md"
        }
    }
}          

Sie müssen auch einen neuen Abschnitt in Ihrem Erweiterungsmanifest hinzufügen, um kostenpflichtige Lizenzierung außer Kraft zu setzen. In Zukunft werden wir die Prüfung der bezahlten Lizenzierung entfernen und das Überschreiben nicht mehr verlangen. Stellen Sie vorerst sicher, dass die Erweiterung erwartungsgemäß angezeigt wird. Jede Überschreibung besteht aus einer "ID" und einem "Verhalten". Passen Sie die "ID" an die ID der im Manifest definierten Beiträge an.

"licensing": {

      "overrides": [

        { "id": "my-hub", "behavior": " AlwaysInclude" }
      ]
    }

Wenn Ihre kostenpflichtige BYOL-Erweiterung einen Testzeitraum bietet (wir empfehlen dies), können Sie die Länge der Testversion in Tagen angeben:

{
    "galleryproperties": {
        "trialDays": "30"
    } 
}          

Hinweis

Wenn Sie Azure DevOps als Ziel verwenden möchten, aber keine Downloadoption für Ihre Erweiterung anzeigen möchten, fügen Sie das __DoNotDownload Tag (beginnt mit zwei Unterstrichen) zum Erweiterungsmanifest hinzu. Wenn Sie eine Erweiterung von der zuvor angebotenen &-Abrechnungslizenzierung von Microsoft zum BYOL-Modell migrieren, wenden Sie sich an uns, um die geeigneten Schritte zu besprechen.

Beispiel für weitere Eigenschaften

{
    "description": "Awesome tools to help you and your team do great things everyday.",
    "icons": {
        "default": "images/fabrikam-logo.png"
    },
    "categories": [
        "Plan and track"
    ],
    "tags": [
        "working",
        "people person",
        "search"
    ],
    "content": {
        "details": {
            "path": "overview.md"
        },
        "license": {
            "path": "license-terms.md"
        }
    },
    "links": {
        "home": {
            "uri": "https://www.fabrikam-fiber-inc.com"
        },
        "getstarted": {
            "uri": "https://www.fabrikam-fiber-inc.com/help/getstarted"
        },
        "learn": {
            "uri": "https://www.fabrikam-fiber-inc.com/features"
        },
        "support": {
            "uri": "https://www.fabrikam-fiber-inc.com/support"
        },
        "repository": {
            "uri": "https://github.com/fabrikam-fiber-inc/tools"
        },
        "issues": {
            "uri": "https://github.com/fabrikam-fiber-inc/tools/issues"
        }
    },
    "repository": {
        "type": "git",
        "uri": "https://github.com/fabrikam-fiber-inc/tools"
    },
    "badges": [
        {
            "href": "https://travis.ci/fabrikam-fiber-inc/myextension",
            "uri": "https://travis.ci/fabrikam-fiber-inc/myextension.svg?branch=master",
            "description": "TravisCI build for the project"
        },
        {
            "href": "https://ci.appveyor.com/projects/fabrikam-fiber-inc/myextension",
            "uri": "https://ci.appveyor.com/api/projects/status/vlg2sgs2y7tsdxpj4c?svg=true",
            "description": "AppVeyor build for the project"
        }
    ],
    "branding": {
        "color": "rgb(34, 34, 34)",
        "theme": "dark"
    },
    "screenshots": [
        {
            "path": "screenshots/screen1.png"
        },
        {
            "path": "screenshots/screen2.png"
        }
    ]
}

Beispiel für eine Detailseite

  • 1 - Beschreibung
  • 2 – Symbol
  • 3 - Kategorien
  • 4 – Screenshots
  • 5 – Inhalt (Details)
  • 6 – Links
  • 7 - Branding

Karte

Marketplace Q & A – Eigenschaft CustomerQnASupport

Alle Erweiterungen auf dem Visual Studio Marketplace verfügen über einen Abschnitt "Fragen und Antworten" (F & A), um einmalige öffentliche Unterhaltungen zwischen Erweiterungsbenutzern und Herausgebern zu ermöglichen. Herausgeber können zwischen Marketplace Q & A, GitHub-Problemen oder einer benutzerdefinierten Q-& A-URL wählen. Sie können Q & A im Marketplace über die CustomerQnASupport-Eigenschaft im Manifest deaktivieren.

Standarderfahrung (Es sind keine Änderungen am Manifest erforderlich)

  • Für Erweiterungen mit einem GitHub-Repository leitet Marketplace Benutzer im F&A-Abschnitt zu den zugehörigen GitHub-Problemen um.
  • Für Erweiterungen ohne GitHub-Repository ist Marketplace Q&A aktiviert.

Verwenden Sie im Manifest die CustomerQnASupport-Eigenschaft, um ein anderes Erlebnis als eine der Standardoptionen zu erhalten.

{
    "CustomerQnASupport": {
        "enablemarketplaceqna": true,
        "url": "http://uservoice.visualstudio.com"
    } 
}

Eigenschaften

Eigenschaften für den Abschnitt "Customer Q & A Support":

  • enablemarketplaceqna – boolesches Feld, wird auf für den Marktplatz oder benutzerdefiniertes Q&A gesetzt; false bedeutet, das Q&A zu deaktivieren
  • url - Zeichenfolge, URL für benutzerdefinierte F&A

Beispiele für die Verwendung der Q &A-Unterstützung

Beispiel: Erweiterung mit benutzerdefinierten F&A

{
     "CustomerQnASupport": {
        "enablemarketplaceqna":"true",
        "url": "http://uservoice.visualstudio.com"
    } 
}

Beispiel: Erweiterung mit GitHub-Repository, aber Verwendung von Marketplace Q & A anstelle von GitHub-Issues

{
     "CustomerQnASupport": {
        "enablemarketplaceqna":"true"
    } 
}

Beispiel: Erweiterung, die den Abschnitt Q & A deaktiviert

{
     "CustomerQnASupport": {
        "enablemarketplaceqna":"false"
    } 
}

Bereiche

In Ihrer Erweiterung können Sie einen oder mehrere Bereiche definieren. Diese Bereiche bestimmen, auf welche Ressourcen Ihre Erweiterung zugreifen kann, und welche Vorgänge für diese Ressourcen ausgeführt werden dürfen. Die Bereiche, die Sie in Ihrem Erweiterungsmanifest angeben, sind die Bereiche, die für Zugriffstoken festgelegt sind, die für Ihre Erweiterung ausgegeben wurden. Weitere Informationen finden Sie unter "Authentifizierung und Sicherheit".

Wenn keine Bereiche angegeben sind, werden Erweiterungen nur Zugriff auf Benutzerprofil- und Erweiterungsdaten bereitgestellt.

Unterstützte Geltungsbereiche

Kategorie Umfang Name Hohe Rechte BESCHREIBUNG Erbt von
Erweiterte Sicherheit vso.advsec Erweiterte Sicherheit (lesen) Ja Gewährt die Möglichkeit, Warnungen, Ergebnisinstanzen und Analyseergebnisinstanzen zu lesen.
vso.advsec_write Erweiterte Sicherheit (Lese- und Schreibzugriff) Ja Gewährt die Möglichkeit, Analysen in Serifen hochzuladen. vso.advsec
vso.advsec_manage Erweiterte Sicherheit (Lesen, Schreiben und Verwalten) Ja Gewährt die Möglichkeit, Analysen in Serifen hochzuladen. vso.advsec_write
Agentpools vso.agentpools Agentpools (lesen) Gewährt die Möglichkeit, Aufgaben, Pools, Warteschlangen, Agents und aktuell ausgeführte oder kürzlich abgeschlossene Aufträge für Agents anzuzeigen.
vso.agentpools_manage Agentpools (Lesen und Verwalten) Ja Gewährt die Möglichkeit, Pools, Warteschlangen und Agents zu verwalten. vso.agentpools
vso.environment_manage Umgebung (Lesen und Verwalten) Ja Gewährt die Möglichkeit, Pools, Warteschlangen, Agents und Umgebungen zu verwalten. vso.agentpools_manage
Analysen vso.analytics Analytics (lesen) Gewährt die Möglichkeit, Analysedaten abzufragen.
Überwachung vso.auditlog Überwachungsprotokoll (lesen) Gewährt Benutzern die Möglichkeit, das Überwachungsprotokoll zu lesen.
vso.auditstreams_manage Überwachungsdatenströme (lesen) Ja Gewährt benutzern die Möglichkeit, Überwachungsdatenströme zu verwalten. vso.auditlog
Build vso.build Build (Lesen) Gewährt die Möglichkeit, auf Build-Artefakte zuzugreifen, einschließlich der Ergebnisse, Definitionen und Anfragen von Builds, sowie die Möglichkeit, Benachrichtigungen über Build-Ereignisse über Service-Hooks zu empfangen. vso.hooks_write
vso.build_execute Build (Lesen und Ausführen) Ja Gewährt die Möglichkeit, auf Buildartefakte zuzugreifen, einschließlich Buildergebnissen, Definitionen und Anforderungen. Gewährt außerdem die Möglichkeit, einen Build in die Warteschlange zu stellen, Buildeigenschaften zu aktualisieren und Benachrichtigungen über Buildereignisse über Dienst-Hooks zu erhalten. vso.build
Code vso.code Code (Lesen) Gewährt die Möglichkeit, Quellcode und Metadaten über Commits, Changesets, Branches und andere Artefakte der Versionssteuerung zu lesen. Gewährt außerdem die Möglichkeit, Code zu durchsuchen und über Dienst-Hooks über Versionssteuerungsereignisse benachrichtigt zu werden. vso.hooks_write
vso.code_write Code (Lesen und Schreiben) Ja Gewährt die Möglichkeit, Quellcode zu lesen, zu aktualisieren und zu löschen, und greift auf Metadaten zu Commits, Änderungenets, Verzweigungen und anderen Versionskontrollartefakten zu. Gewährt außerdem die Möglichkeit, Pullanforderungen und Codeüberprüfungen zu erstellen und zu verwalten und Benachrichtigungen über Versionssteuerungsereignisse über Diensthaken zu erhalten. vso.code
vso.code_manage Code (Lesen, Schreiben und Verwalten) Ja Gewährt die Möglichkeit, Quellcode zu lesen, zu aktualisieren und zu löschen, auf Metadaten über Commits, Changesets, Branches und andere Artefakte der Versionsverwaltung zuzugreifen. Gewährt außerdem die Möglichkeit, Coderepositorys zu erstellen und zu verwalten, Pullanforderungen und Codeüberprüfungen zu erstellen und zu verwalten und Benachrichtigungen über Versionssteuerungsereignisse über Diensthaken zu erhalten. vso.code_write
vso.code_full Code (vollständig) Ja Gewährt Vollzugriff auf den Quellcode, Metadaten zu Commits, Changesets, Zweigen und anderen Artefakten der Versionskontrolle. Gewährt außerdem die Möglichkeit, Coderepositorys zu erstellen und zu verwalten, Pullanforderungen und Codeüberprüfungen zu erstellen und zu verwalten und Benachrichtigungen über Versionssteuerungsereignisse über Dienst-Hooks zu erhalten. Umfasst auch eingeschränkte Unterstützung für Client-OM-APIs. vso.code_manage
vso.code_status Code (Status) Gewährt die Möglichkeit, den Commit- und Pullanforderungsstatus zu lesen und zu schreiben.
Verbundener Server vso.connected_server Verbundener Server Gewährt die Möglichkeit, auf Endpunkte zuzugreifen, die von einem on-premises verbundenen Server benötigt werden.
Berechtigungen vso.entitlements Berechtigungen (lesen) Gewährt schreibgeschützten Zugriff auf Lizenzierungsberechtigungsendpunkte, um Kontoberechtigungen abzurufen.
vso.memberentitlementmanagement Verwaltung von Mitgliedsberechtigungen (lesen) Gewährt die Möglichkeit, Benutzer, ihre Lizenzen und die Projekte und Erweiterungen zu lesen, auf die sie zugreifen können.
vso.memberentitlementmanagement_write Verwaltung von Mitgliedsberechtigungen (Schreiben) Ja Gewährt die Möglichkeit, Benutzer und ihre Lizenzen sowie die Projekte und Erweiterungen zu verwalten, auf die sie zugreifen können. vso.memberentitlementmanagement
Erweiterungen vso.extension Erweiterungen (lesen) Gewährt die Möglichkeit, installierte Erweiterungen zu lesen. vso.profile
vso.extension_manage Erweiterungen (lesen und verwalten) Ja Gewährt die Möglichkeit zum Installieren, Deinstallieren und Ausführen anderer administrativer Aktionen für installierte Erweiterungen. vso.extension
vso.extension.data Erweiterungsdaten (lesen) Gewährt die Möglichkeit, Daten (Einstellungen und Dokumente) zu lesen, die von installierten Erweiterungen gespeichert sind. vso.profile
vso.extension.data_write Erweiterungsdaten (Lesen und Schreiben) Gewährt die Möglichkeit, Daten (Einstellungen und Dokumente) zu lesen und zu schreiben, die von installierten Erweiterungen gespeichert sind. vso.extension.data
GitHub-Verbindungen vso.githubconnections GitHub-Verbindungen (lesen) Gewährt die Möglichkeit, GitHub-Verbindungen und GitHub-Repositorydaten zu lesen.
vso.githubconnections_manage GitHub-Verbindungen (Lesen und Verwalten) Ja Gewährt die Möglichkeit, GitHub-Verbindungen und GitHub-Repositorydaten zu lesen und zu verwalten. vso.githubconnections
Graph und Identität vso.graph Graph (lesen) Gewährt die Möglichkeit, Benutzer-, Gruppen-, Bereichs- und Gruppenmitgliedschaftsinformationen zu lesen.
vso.graph_manage Graph (verwalten) Ja Gewährt die Möglichkeit, Benutzer-, Gruppen-, Bereichs- und Gruppenmitgliedschaftsinformationen zu lesen, Benutzer und Gruppen hinzuzufügen und Gruppenmitgliedschaften zu verwalten. vso.graph
vso.identity Identität (Lesen) Gewährt die Möglichkeit, Identitäten und Gruppen zu lesen.
vso.identity_manage Identität (verwalten) Ja Ermöglicht das Lesen, Schreiben und Verwalten von Identitäten und Gruppen. vso.identity
Computergruppe vso.machinegroup_manage Bereitstellungsgruppe (lesen, verwalten) Ja Gewährt die Möglichkeit, Bereitstellungsgruppen- und Agentpools zu verwalten. vso.agentpools_manage
Marketplace vso.gallery Marketplace Ermöglicht Lesezugriff auf öffentliche und private Artikel und Publisher. vso.profile
vso.gallery_acquire Marketplace (beziehen) Ermöglicht Lesezugriff und die Möglichkeit, Artikel zu beziehen. vso.gallery
vso.gallery_publish Marktplatz (veröffentlichen) Ja Gewährt Lesezugriff und die Möglichkeit zum Hochladen, Aktualisieren und Freigeben von Elementen. vso.gallery
vso.gallery_manage Marketplace (verwalten) Ja Gewährt Lesezugriff und die Möglichkeit, Elemente und Herausgeber zu veröffentlichen und zu verwalten. vso.gallery_publish
Benachrichtigungen vso.notification Benachrichtigungen (lesen) Gewährt Lesezugriff auf Abonnements und Ereignismetadaten, einschließlich filterbarer Feldwerte. vso.profile
vso.notification_write Benachrichtigungen (Schreiben) Gewährt Lese- und Schreibzugriff auf Abonnements und Lesezugriff auf Ereignismetadaten, einschließlich filterbarer Feldwerte. vso.notification
vso.notification_manage Benachrichtigungen (verwalten) Gewährt Lese-, Schreib- und Verwaltungszugriff auf Abonnements und Lesezugriff auf Ereignismetadaten, einschließlich filterbarer Feldwerte. vso.notification_write
vso.notification_diagnostics Benachrichtigungen (Diagnose) Gewährt Zugriff auf Benachrichtigungs-bezogene Diagnoseprotokolle und gewährt die Möglichkeit, die Diagnose für einzelne Abonnements zu aktivieren. vso.notification
Verpackung vso.packaging Packaging (lesen) Gewährt die Möglichkeit, Feeds und Pakete zu lesen. vso.profile
vso.packaging_write Packaging (lesen und schreiben) Ja Gewährt die Möglichkeit, Feeds und Pakete zu erstellen und zu lesen. vso.packaging
vso.packaging_manage Packaging (lesen, schreiben und verwalten) Ja Gewährt die Möglichkeit, Feeds und Pakete zu erstellen, zu lesen, zu aktualisieren und zu löschen. vso.packaging_write
Pipeline-Ressourcen vso.pipelineresources_use Pipelineressourcen (Verwendung) Ja Gewährt die Möglichkeit, die Anforderung einer Pipeline zur Verwendung einer geschützten Ressource zu genehmigen: Agentpool, Umgebung, Warteschlange, Repository, sichere Dateien, Dienstverbindung und Variablengruppe.
vso.pipelineresources_manage Pipelineressourcen (Verwenden und Verwalten) Ja Gewährt die Möglichkeit, eine geschützte Ressource oder die Anforderung einer Pipeline zur Verwendung einer geschützten Ressource zu verwalten: Agentpool, Umgebung, Warteschlange, Repository, sichere Dateien, Dienstverbindung und Variablengruppe. vso.pipelineresources_use
Projekt und Team vso.project Projekt und Team (Lesen) Gewährt die Möglichkeit, Projekte und Teams zu lesen.
vso.project_write Projekt und Team (Lesen und Schreiben) Gewährt die Möglichkeit, Projekte und Teams zu lesen und zu aktualisieren. vso.project
vso.project_manage Projekt und Team (Lesen, Schreiben und Verwalten) Ja Gewährt die Möglichkeit, Projekte und Teams zu erstellen, zu lesen, zu aktualisieren und zu löschen. vso.project_write
Freigabe vso.release Freigeben (lesen) Gewährt die Möglichkeit, Releaseartefakte zu lesen, einschließlich Versionen, Releasedefinitionen und Releaseumgebung. vso.profile
vso.release_execute Freigeben (Lesen, Schreiben und Ausführen) Ja Gewährt die Möglichkeit, Releaseartefakte zu lesen und zu aktualisieren, einschließlich Versionen, Releasedefinitionen und Releaseumgebung. Gewährt außerdem die Möglichkeit, eine neue Version in die Warteschlange zu stellen. vso.release
vso.release_manage Release (Lesen, Schreiben, Ausführen und Verwalten) Ja Gewährt die Möglichkeit, Releaseartefakte zu lesen, zu aktualisieren und zu löschen, einschließlich Versionen, Releasedefinitionen und Releaseumgebung. Gewährt außerdem die Möglichkeit, eine neue Version in die Warteschlange zu stellen und zu genehmigen. vso.release_execute
Sichern von Dateien vso.securefiles_read Sichere Dateien (lesen) Ja Gewährt die Möglichkeit, sichere Dateien zu lesen.
vso.securefiles_write Sichere Dateien (Lesen und Erstellen) Ja Gewährt die Möglichkeit, sichere Dateien zu lesen und zu erstellen. vso.securefiles_read
vso.securefiles_manage Sichern von Dateien (Lesen, Erstellen und Verwalten) Ja Gewährt die Möglichkeit, sichere Dateien zu lesen, zu erstellen und zu verwalten. vso.securefiles_write
Sicherheit vso.security_manage Sicherheit (verwalten) Ja Gewährt die Möglichkeit zum Lesen, Schreiben und Verwalten von Sicherheitsberechtigungen.
Dienstverbindungen vso.serviceendpoint Dienstendpunkte (lesen) Gewährt die Möglichkeit, Dienstendpunkte zu lesen. vso.profile
vso.serviceendpoint_query Dienstendpunkte (Lesen und Abfragen) Gewährt die Möglichkeit zum Lesen und Abfragen von Dienstendpunkten. vso.serviceendpoint
vso.serviceendpoint_manage Dienstendpunkte (Lesen, Abfragen und Verwalten) Ja Gewährt die Möglichkeit zum Lesen, Abfragen und Verwalten von Dienstendpunkten. vso.serviceendpoint_query
Service Hooks vso.hooks Dienst-Hooks (lesen) Ermöglicht das Lesen von Abonnements und Metadaten für Dienst-Hooks, einschließlich unterstützter Ereignisse, Consumer und Aktionen. (Nicht mehr öffentlich.) vso.profile
vso.hooks_write Dienst-Hooks (lesen und schreiben) Gewährt die Möglichkeit, Service-Hook-Abonnements zu erstellen und zu aktualisieren sowie Metadaten zu lesen, einschließlich unterstützter Ereignisse, Nutzer und Aktionen. (Nicht mehr öffentlich.) vso.hooks
vso.hooks_interact Dienst-Hooks (interagieren) Gewährt die Möglichkeit, mit über Servicehooks empfangenen Ereignissen zu interagieren sowie Aktionen auszuführen. (Nicht mehr öffentlich.) vso.profile
Einstellungen vso.settings Einstellungen (lesen) Gewährt die Möglichkeit zum Lesen von Einstellungen.
vso.settings_write Einstellungen (Lese- und Schreibzugriff) Gewährt die Möglichkeit zum Lesen und Schreiben von Einstellungen. vso.settings
Symbole vso.symbols Symbole (lesen) Gewährt die Möglichkeit, Symbole zu lesen. vso.profile
vso.symbols_write Symbole (Lesen und Schreiben) Gewährt die Möglichkeit, Symbole zu lesen und zu schreiben. vso.symbols
vso.symbols_manage Symbole (Lesen, Schreiben und Verwalten) Gewährt die Möglichkeit, Symbole zu lesen, zu schreiben und zu verwalten. vso.symbols_write
Aufgabengruppen vso.taskgroups_read Aufgabengruppen (lesen) Gewährt die Möglichkeit, Aufgabengruppen zu lesen.
vso.taskgroups_write Aufgabengruppen (lesen und erstellen) Gewährt die Möglichkeit zum Lesen und Erstellen von Aufgabengruppen. vso.taskgroups_read
vso.taskgroups_manage Aufgabengruppen (Lesen, Erstellen und Verwalten) Ja Gewährt die Möglichkeit, Aufgabengruppen zu lesen, zu erstellen und zu verwalten. vso.taskgroups_write
Teamdashboard vso.dashboards Team-Dashboards (lesen) Gewährt die Möglichkeit, Team-Dashboardinformationen zu lesen.
vso.dashboards_manage Team Dashboards (verwalten) Gewährt die Möglichkeit, Team-Dashboardinformationen zu verwalten. vso.dashboards
Testverwaltung vso.test Die Testverwaltung (Lesen) Gewährt die Möglichkeit, Testpläne, Fälle, Ergebnisse und andere im Zusammenhang mit der Testverwaltung zusammenhängende Artefakte zu lesen. vso.profile
vso.test_write Testverwaltung (Lese- und Schreibzugriff) Gewährt die Möglichkeit, Testpläne, Fälle, Ergebnisse und andere im Zusammenhang mit der Testverwaltung verbundene Artefakte zu lesen, zu erstellen und zu aktualisieren. vso.test
Threads vso.threads_full PR-Threads Gewährt die Möglichkeit, Pull-Request-Kommentar-Threads zu lesen und zu schreiben.
Tokenen vso.tokens Delegierte Autorisierungstoken Ja Gewährt benutzern die Möglichkeit, delegierte Autorisierungstoken zu verwalten.
vso.tokenadministration Tokenverwaltung Ja Sie gewährt Organisationsadministratoren die Möglichkeit, vorhandene Token zu verwalten, anzuzeigen und zu widerrufen.
Benutzerprofil vso.profile Benutzerprofil (Lesen) Gewährt die Möglichkeit, Ihr Profil, Konten, Sammlungen, Projekte, Teams und andere Organisationsartefakte auf oberster Ebene zu lesen.
vso.profile_write Benutzerprofil (Schreiben) Gewährt die Möglichkeit, in Ihr Profil zu schreiben. vso.profile
Variablengruppen vso.variablegroups_read Variable Gruppen (lesen) Gewährt die Möglichkeit, Variablengruppen zu lesen.
vso.variablegroups_write Variable Gruppen (lesen und erstellen) Gewährt die Möglichkeit zum Lesen und Erstellen von Variablengruppen. vso.variablegroups_read
vso.variablegroups_manage Variable Gruppen (Lesen, Erstellen und Verwalten) Ja Gewährt die Möglichkeit zum Lesen, Erstellen und Verwalten von Variablengruppen. vso.variablegroups_write
Wiki vso.wiki Wiki (lesen) Gewährt die Möglichkeit, Wikis, Wiki-Seiten und Wiki-Anlagen zu lesen. Gewährt auch die Möglichkeit, Wiki-Seiten zu durchsuchen.
vso.wiki_write Wiki (Lesen und Schreiben) Gewährt die Möglichkeit, Wikis, Wiki-Seiten und Wiki-Anlagen zu lesen, zu erstellen und zu aktualisieren. vso.wiki
Arbeitsaufgaben vso.work Arbeitselemente (Lesen) Gewährt die Möglichkeit, Arbeitsaufgaben, Abfragen, Boards, Flächen- und Iterationspfade und andere Metadaten zur Nachverfolgung von Arbeitsaufgaben zu lesen. Gewährt außerdem die Möglichkeit, Abfragen auszuführen, Arbeitsaufgaben zu durchsuchen und Benachrichtigungen über Arbeitsaufgabenereignisse über Dienst-Hooks zu erhalten. vso.hooks_write
vso.work_write Arbeitselemente (Lesen und Schreiben) Gewährt die Möglichkeit, Arbeitsaufgaben und Abfragen zu lesen, zu erstellen und zu aktualisieren, Boardmetadaten zu aktualisieren, Bereichs- und Iterationspfade und andere Nachverfolgungsmetadaten für Arbeitsaufgaben zu aktualisieren, Abfragen auszuführen und Benachrichtigungen über Arbeitsaufgabenereignisse über Dienst-Hooks zu erhalten. vso.work
vso.work_full Arbeitselemente (vollständig) Gewährt vollzugriff auf Arbeitsaufgaben, Abfragen, Backlogs, Pläne und Metadaten zur Nachverfolgung von Arbeitsaufgaben. Gewährt außerdem die Möglichkeit, Benachrichtigungen über Arbeitsaufgabenereignisse über Service-Hooks zu erhalten. vso.work_write
Benutzeridentitätswechsel user_impersonation Benutzeridentitätswechsel Ja Gewährt vollzugriff auf REST-APIs von Visual Studio Team Services. Fordern Sie diesen Bereich mit Vorsicht an oder stimmen Sie sie zu, da sie sehr leistungsfähig ist.

Ändern des Umfangs der veröffentlichten Erweiterung

Sie können den Umfang einer veröffentlichten Erweiterung ändern. Wenn Sie Ihre Erweiterung zuvor installiert haben (und die vorherigen Bereiche autorisiert haben), autorisieren Sie die neuen Bereiche, bevor Sie ein Upgrade auf die neueste Version durchführen können.

Im Abschnitt "Aktion erforderlich" des Hubs für Erweiterungseinstellungen wird einem Benutzer angezeigt, ob installierte Erweiterungen ggf. eine Autorisierung erfordern:

scope-change

Ein Administrator kann dann die neuen Bereiche überprüfen und autorisieren:

scope-change-dialog

Installationsziele

Wie der Name schon sagt, definieren Installationsziele die Produkte und Dienste, in denen Sie Ihre Erweiterung installieren können. Microsoft.VisualStudio.Services ist das häufigste Installationsziel und gibt an, dass die Erweiterung in Azure DevOps installiert werden kann.

Die Installationsziele für eine Erweiterung oder Integration werden über das targets Feld im Manifest angegeben.

Unterstützte Bezeichner für Erweiterungen:

  • Microsoft.VisualStudio.Services.Cloud: Installiert in Azure DevOps Services
  • Microsoft.TeamFoundation.Server: Installiert in Azure DevOps Server
  • Microsoft.VisualStudio.Services: Installiert in beide. Abkürzung für Microsoft.VisualStudio.Services.Cloud und Microsoft.TeamFoundation.Server Version [14.2,)

Unterstützte Bezeichner für Integrationen:

  • Microsoft.VisualStudio.Services.Cloud.Integration: integriert in Azure DevOps Services
  • Microsoft.TeamFoundation.Server.Integration: integriert in Azure DevOps Server
  • Microsoft.VisualStudio.Services.Integration: integriert sich mit beiden. Tastenkombination für Microsoft.VisualStudio.Services.Cloud.Integration und Microsoft.TeamFoundation.Server.Integration

Weitere Informationen finden Sie unter Erweiterbarkeitspunkte.

Beispiele für Installationsziele

Beispiel: Erweiterung, die mit Azure DevOps funktioniert

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ]
}

Beispiel: Erweiterung, die nur mit Azure DevOps Services funktioniert

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Cloud"
        }
    ]
}

Installationsziele können auch im Manifest der Integrationen verwendet werden. Beispielsweise Produkte, Apps oder Tools, die mit Azure DevOps kompatibel sind, aber nicht darin installiert werden.

Beispiel: Integration, die mit Azure DevOps funktioniert

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Integration"
        }
    ]
}

Beispiel: Integration, die nur mit Azure DevOps Server funktioniert

{
    "targets": [
        {
            "id": "Microsoft.TeamFoundation.Server.Integration"
        }
    ]
}

Installationszielversionen

Einige Installationsziel-Identifikatoren, wie Microsoft.TeamFoundation.Server und Microsoft.TeamFoundation.Server.Integration, unterstützen einen optionalen Versionsbereich. In diesem optionalen Versionsbereich werden die unterstützten Versionen, für die die Erweiterung oder Integration unterstützt wird, weiter erläutert.

Der Versions- oder Versionsbereich wird über das version Feld des Installationszielobjekts angegeben. Dieser Wert kann entweder sein:

  • Eine bestimmte Version, z. B.: 15.0 (nur 2017 RTM)
  • Eine Reihe unterstützter Versionen, z. B. ( [14.0) 2015 RTM und höher), [14.3,15.1] (2015 Update 3 bis 2017 Update 1). Bereichswerte werden verfeinert mithilfe von:
    • [: minimale Version inklusive
    • ]: maximale Version inklusive
    • (: Mindestversion exklusiv
    • ): maximale Version exklusiv

Versionsnummern für Azure DevOps Server:

Freigabe Veröffentlichungen Version
2010 Alle Releases 10,0
2012 Alle Releases 11,0
2013 RTM und Aktualisierungen 12.0, 12.1, 12.2, 12.3, 12.4
2015 RTM und Aktualisierungen 14.0, 14.1, 14.2, 14.3
2017 RTM und Aktualisierungen 15.0, 15.1
2018 RTM und Aktualisierungen 16,0
2019 RTM und Aktualisierungen 17.0
2020 RTM und Aktualisierungen 18,0

Beispiele für Versionen

Beispiel: Erweiterung, die mit Azure DevOps funktioniert

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Cloud"
        },
        {
            "id": "Microsoft.TeamFoundation.Server",
            "version": "[15.0,)"
        }
    ]
}

Abkürzungen

Microsoft.VisualStudio.Services ist eine Tastenkombination für Azure DevOps.

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ]
}

entspricht:

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Cloud"
        },
        {
            "id": "Microsoft.TeamFoundation.Server",
            "version": "[14.2,)"
        }
    ]
}

Verwendung von Installationszielen und -bedarfen

Installationsziele und Anforderungen werden zusammen verwendet, um Benutzern eine korrekte Ansicht der Produkte und Dienste zu präsentieren, mit denen Ihre Erweiterung oder Integration kompatibel ist. Wenn Sie zum Beispiel Microsoft.VisualStudio.Services als Installationsziel mit einer Anforderung von api-version/3.0 angeben, funktioniert die Erweiterung mit Azure DevOps.

Tipp

Weitere Informationen zu REST-APIs finden Sie in der REST-API-Referenz.

Beispiel: Erweiterung, die Version 3.0-APIs verwendet

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ],
    "demands": [
        "api-version/3.0"
    ]
}

Löst die folgenden Ziele für die Installation auf:

  1. Microsoft.VisualStudio.Services.Cloud
  2. Microsoft.TeamFoundation.ServerVersion: [15.0,)

Beispiel: Integration, die Version 2.0-APIs verwendet

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Integration"
        }
    ],
    "demands": [
        "api-version/2.0"
    ]
}

Löst die folgenden Ziele für die Installation auf:

  1. Microsoft.VisualStudio.Services.Cloud.Integration
  2. Microsoft.TeamFoundation.Server.IntegrationVersion: [14.0,)

Forderungen

Anforderungen ermöglichen ihnen die Angabe von Funktionen und anderen Features, die von Ihrer Erweiterung benötigt werden. Sie können diese Anforderungen verwenden, um zu begrenzen, wo Ihre Erweiterung veröffentlicht oder installiert werden kann.

Anforderungen werden vom Visual Studio Marketplace verwendet, um die Produkte und Umgebungen auflisten, mit denen Ihre Erweiterung kompatibel ist, was Kunden hilft zu verstehen, ob Ihre Erweiterung mit ihrer Version von Azure DevOps funktioniert, z. B..

Im folgenden Beispiel wird gezeigt, wie Anforderungen im Erweiterungsmanifest angegeben werden.

{
    "demands": [
        "api-version/3.0",
        "contribution/ms.vss-dashboards-web.widget-catalog"
    ]
}

In diesem Beispiel erfordert die Erweiterung Version 3.0 der APIs, was bedeutet, dass sie nur in Azure DevOps installiert werden kann. Außerdem muss die ms.vss-dashboards-web Erweiterung (und ihr widget-catalog Beitrag) in der Sammlung installiert und aktiviert sein, bevor die Erweiterung installiert werden kann.

Unterstützte Anforderungen

Typ BESCHREIBUNG Beim Veröffentlichen geprüft? Bei der Installation geprüft?
environment/cloud Erfordert die Ausführung in einer Cloudumgebung. Ja Ja
environment/onprem Erfordert die Ausführung in einer lokalen Umgebung. Ja Ja
api-version/{version} Erfordert eine bestimmte API-Version (Minimum) Nein Ja
extension/{id} Erfordert, dass eine bestimmte Erweiterung installiert/aktiviert ist Nein Ja
contribution/{id} Erfordert, dass ein bestimmter Beitrag verfügbar ist Nein Ja
contributionType/{id} Erfordert, dass ein bestimmter Beitragstyp verfügbar ist. Nein Ja

Hinweis

  • Verwenden Sie environment/cloud und environment/onprem nur, wenn Ihre Erweiterung topologiebezogene Anforderungen hat, die das Ausführen in dieser bestimmten Umgebung erfordern.
  • extension, contributionund contributionType Anforderungen werden zur Installationszeit ausgewertet und erfordern, dass die angegebene Erweiterung bereits in der Organisation oder Sammlung installiert und aktiviert ist.

Dateien

Im files Abschnitt verweisen Sie auf alle Dateien, die Sie in Ihre Erweiterung aufnehmen möchten. Sie können ordner und einzelne Dateien hinzufügen:

{
    "files": [
        {
            "path": "hello-world.html", "addressable": true
        },
        {
            "path": "scripts", "addressable": true
        },
        {
            "path": "images/logo.png", "addressable": true, "packagePath": "/"
        }
    ]
}

Eigenschaften

Eigenschaften für den Abschnitt "Dateien":

  • pfad – Pfad zur Ressource auf dem Datenträger, der relativ zu Ihrem Root-Verzeichnis sein kann.
  • adressierbar – (optional) Setzen Sie ihn auf 'true', wenn die Datei URL-adressierbar sein soll. Standardwert ist "false".
  • packagePath – (optional) Pfad zur Ressource innerhalb des Pakets. Standardmäßig wird der relative Pfad auf dem Datenträger von Ihrem Root-Verzeichnis aus verwendet.
  • contentType – (optional) MIME-Typ der Datei. Wird anhand der Erweiterung der Datei und der Einstellungen des Betriebssystems festgelegt.
  • assetType – (optional) Geben Sie den Wert des Type-Attributs des Objekteintrags im VSIX-Manifest an. Kann auch ein Array von Zeichenfolgen sein, in diesem Fall werden mehrere Objekteinträge für diese Datei hinzugefügt. Standardmäßig wird der packagePath verwendet.
  • lang – (optional) Sprache dieser Ressource. Lokalisierte Dateien werden basierend auf dem Header "Accept-Language" bereitgestellt. Leer lassen, um zu kennzeichnen, dass sich diese Datei in der Standardsprache (oder Ausweichsprache) befindet. Lokalisierte Versionen derselben Datei sollten denselben assetType aufweisen.

Beiträge

Jeder Beitragseintrag weist die folgenden Eigenschaften auf:

  • id - Eine Referenz-ID (Zeichenfolge) für den Beitrag. Machen Sie jede Beitrags-ID innerhalb einer Erweiterung einzigartig. Siehe Referenzierung von Beiträgen und Typen.
  • Typ – Die ID des contributionType dieses Beitrags.
  • description - (Optional) Eine Zeichenfolge, die beschreibt, was der Beitrag bereitstellt.
  • targets – Ein Array von Contribution-IDs, auf die der Contribution abzielt (zu denen er beiträgt). Weitere Informationen: Zielbeiträge.
  • Eigenschaften - (Optional) Ein Objekt, das Eigenschaften für den Beitrag enthält, wie im Beitragstyp definiert.

Weitere Informationen finden Sie in der Übersicht über das Beitragsmodell.

Beitragstypen

Jeder Beitragseintrag weist die folgenden Eigenschaften auf:

  • id – Eine Referenz-ID (Zeichenfolge) für den Beitragstyp. Geben Sie jede Beitragstyp-ID innerhalb einer Erweiterung eindeutig an. Siehe Referenzierung von Beiträgen und Typen.
  • name - Der freundliche Name des Beitragstyps.
  • description - (Optional) Eine Zeichenfolge, die ausführlicher beschreibt, wofür der Beitragstyp verwendet wird.
  • properties - (Optional) Ein Wörterbuch, das Eigenschaftsnamen Eigenschaftenbeschreibungen zuordnet. Diese Eigenschaften beschreiben die erforderlichen und optionalen Eigenschaften, die für Beiträge dieses Typs verwendet werden können.

Eigenschaftsbeschreibungen haben folgende Eigenschaften:

  • description - (Optional) Eine Zeichenfolge, die beschreibt, wofür die Eigenschaft verwendet wird.
  • erforderlich - (Optional) Ein boolescher Wert, der bei "true" angibt, dass die Eigenschaft für alle Beiträge dieses Typs erforderlich ist.
  • type - Der Typ von Wert, den die Eigenschaft haben kann, was Zeichenfolge, URI, GUID, boolesch, Ganzzahl, Double, Datum/Zeit, Array oder Objekt sein könnte.

Weitere Informationen finden Sie in der Übersicht über das Beitragsmodell.

Referenzierung von Beiträgen und Typen

Verwenden Sie eindeutige Bezeichner, um auf Beiträge und Beitragstypen zu verweisen. Verweisen Sie auf Typen mit der type Eigenschaft und auf andere Beiträge mit der targets Eigenschaft.

  • Ein vollständiger Beitragsverweis enthält den Herausgeberbezeichner, den Erweiterungsbezeichner und den Bezeichner des Beitrags/Typs, getrennt durch einen Punkt (.). Zum Beispiel ist ms.vss-web.hub der vollständige Bezeichner für den Beitrag mit dem Bezeichner hub in der vss-web Erweiterung, die vom "ms" (Microsoft) Publisher veröffentlicht wurde.
  • Relative Beitragsverweise können in einem Erweiterungsmanifest für den Verweis eines Beitrags auf einen anderen Beitrags- oder Beitragstyp innerhalb derselben Erweiterung verwendet werden. In diesem Fall sind die Herausgeber- und Erweiterungs-IDs NICHT enthalten, und der Bezeichner ist ein Punkt (.) gefolgt von der Beitrags-ID. Beispielsweise kann .hub innerhalb der zuvor erwähnten vss-web-Erweiterung als Abkürzung für ms.vss-web.hubverwendet werden.

Adressierung von Beiträgen

Einige Beiträge fungieren als Container, die von anderen Beiträgen als Ziel verwendet werden.

  • Hubbeiträge können auf Hubgruppen abzielen. Wenn eine Seite gerendert wird, zeigt die Webbenutzeroberfläche alle Hubbeiträge an, die auf die ausgewählte Hubgruppe abzielen. Hubgruppen richten sich an eine Hubgruppensammlung, die eine Gruppe von Hubgruppen definiert, die in einem bestimmten Navigationsbereich angezeigt werden, z. B. Administratorseiten auf Projektebene.
  • Verschiedene Arten von Beiträgen können auf Menüs abzielen: Aktion, Hyperlinkaktion und Aktionsanbieter. Aktionen und Hyperlinkaktionen stellen einzelne Menüelementeinträge bereit. Ein Aktionsanbieter kann mehrere dynamische Menüelemente bereitstellen. Für ein bestimmtes Menü werden Elemente über alle Beiträge (eines dieser Typen) aggregiert, die auf diesen spezifischen Menübeitrag abzielen.

Hinzufügen eines Hubsymbols

Informationen zum Hinzufügen eines Symbols zu Ihrem Hub finden Sie in der Anleitung zum Hubsymbol.

Unterstützte Badge-Dienste

Der Marketplace unterstützt nur Badges aus den folgenden vertrauenswürdigen Diensten:

  • api.travis-ci.org/
  • badge.fury.io/
  • badges.frapsoft.com/
  • badges.gitter.im/
  • badges.greenkeeper.io/
  • cdn.travis-ci.org/
  • ci.appveyor.com/
  • codeclimate.com/
  • codecov.io/
  • coveralls.io/
  • david-dm.org/
  • gemnasium.com/
  • img.shields.io/
  • isitmaintained.com/
  • marketplace.visualstudio.com/
  • snyk.io/
  • travis-ci.com/
  • travis-ci.org/
  • vsmarketplacebadges.dev/
  • bithound.io/
  • deepscan.io/
  • githost.io/
  • gitlab.com/
  • opencollective.co/

Hinweis

Ersetzen Sie vsmarketplacebadge.apphb.com durch vsmarketplacebadges.dev.

Um ein Abzeichen von einem anderen Dienst anzuzeigen, wenden Sie sich an den Kundensupport in der Entwickler-Community.

Beispielmanifest

Die folgende Erweiterung fügt dem Kontextmenü für abgeschlossene Builds eine Aktion und der Gruppe der Build-Hubs einen Hub hinzu:

{
    "manifestVersion": 1,
    "id": "tools",
    "version": "0.1.0",
    "name": "Fabrikam Tools",
    "publisher": "fabrikam",
    "description": "Awesome tools to help you and your team do great things everyday.",
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ],
    "demands": [
        "api-version/3.0"
    ],
    "icons": {
        "default": "images/fabrikam-logo.png"
    },
    "scopes": [
        "vso.work",
        "vso.code_write"
    ],
    "categories": [
        "Plan and track"
    ],
    "tags": [
        "working",
        "people person",
        "search"
    ],
    "branding": {
        "color": "rgb(34, 34, 34)",
        "theme": "dark"
    },
    "screenshots": [
        {
            "path": "screenshots/screen1.png"
        },
        {
            "path": "screenshots/screen2.png"
        }
    ],
    "content": {
        "details": {
            "path": "overview.md"
        },
        "license": {
            "path": "eula.md"
        }
    },
    "links": {
        "home": {
            "uri": "https://www.fabrikam-fiber-inc.com"
        },
        "getstarted": {
            "uri": "https://www.fabrikam-fiber-inc.com/help/getstarted"
        },
        "learn": {
            "uri": "https://www.fabrikam-fiber-inc.com/features"
        },
        "support": {
            "uri": "https://www.fabrikam-fiber-inc.com/support"
        },
        "repository": {
            "uri": "https://github.com/fabrikam-fiber-inc/tools"
        },
        "issues": {
            "uri": "https://github.com/fabrikam-fiber-inc/tools/issues"
        }
    },
    "repository": {
        "type": "git",
        "uri": "https://github.com/fabrikam-fiber-inc/myextension"
    },
    "badges": [
        {
            "href": "https://travis.ci/fabrikam-fiber-inc/myextension",
            "uri": "https://travis.ci/fabrikam-fiber-inc/myextension.svg?branch=master",
            "description": "TravisCI build for the project"
        },
        {
            "href": "https://ci.appveyor.com/projects/fabrikam-fiber-inc/myextension",
            "uri": "https://ci.appveyor.com/api/projects/status/vlg2sgs2y7tsdxpj4c?svg=true",
            "description": "AppVeyor build for the project"
        }
    ],
    "contributions": [
        {
            "id": "showCommits",
            "type": "ms.vss-web.action",
            "description": "Adds a menu action from builds grid to show associated items.",
            "targets": [
                "ms.vss-build-web.completed-build-menu"
            ],
            "properties": {
                "title": "View associated items",
                "uri": "launch.html"
            }
        }
    ]
}