Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
– 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
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 auffü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:
Ein Administrator kann dann die neuen Bereiche überprüfen und autorisieren:
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ürMicrosoft.VisualStudio.Services.CloudundMicrosoft.TeamFoundation.ServerVersion[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ürMicrosoft.VisualStudio.Services.Cloud.IntegrationundMicrosoft.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:
Microsoft.VisualStudio.Services.Cloud-
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:
Microsoft.VisualStudio.Services.Cloud.Integration-
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/cloudundenvironment/onpremnur, wenn Ihre Erweiterung topologiebezogene Anforderungen hat, die das Ausführen in dieser bestimmten Umgebung erfordern. -
extension,contributionundcontributionTypeAnforderungen 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.hubder vollständige Bezeichner für den Beitrag mit dem Bezeichnerhubin dervss-webErweiterung, 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.hubinnerhalb der zuvor erwähntenvss-web-Erweiterung als Abkürzung fürms.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"
}
}
]
}