Freigeben über


Erweiterungsmanifestreferenz

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

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. Es definiert auch die Beiträge, die von Ihrer Erweiterung vorgenommen werden.

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

Diese Eigenschaften sind erforderlich:

Eigenschaft BESCHREIBUNG Hinweise
manifestVersion Eine Zahl, die der Version des Manifestformats entspricht. Sollte 1 lauten.
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".
publisher 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 azure DevOps-Erweiterungsaufgaben zum Veröffentlichen verwenden, stellen Sie sicher, dass ihre Version = 1.2.8 ist>. Möglicherweise müssen Sie das Erweiterungsupdate aufgrund der letzten Bereichsänderungen genehmigen.
    – Die zuvor erwähnten Kategorien sind nativ in Visual Studio Marketplace und Azure DevOps Server 2019 & höher vorhanden. Für Erweiterungen für frühere Versionen von TFS:
      - Wenn TFS-Kunden Ihre Erweiterung über Visual Studio Marketplace (nicht im lokalen Katalog) im verbundenen Kontext erwerben, verwenden Sie die zuvor angegebenen Kategorien.
      - Wenn Sie die Erweiterung direkt (d. h. nicht über den Visual Studio Marketplace) mit einem Kunden teilen möchten, der TFS <=2018 verwendet, verwenden Sie stattdessen die folgenden Kategorien: Code, Plan and track, Build and release, Test, Collaborate, and Integration. Wenn Sie beide über Visual Studio Marketplace und direkt mit einem TFS <= 2018-Kunden teilen müssen, müssen Sie zwei Erweiterungspakete haben.
targets 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 oder TFS arbeiten),
    Microsoft.TeamFoundation.Server- (Erweiterung, die mit TFS funktioniert),- Microsoft.VisualStudio.Services.Integration
    (Integrationen, die mit Azure DevOps oder TFS funktionieren),
    - Microsoft.TeamFoundation.Server.Integration (Integrationen, die mit TFS funktionieren)

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. Die Erweiterung benötigt beispielsweise vso.work vs.code_write schreibgeschützten Zugriff auf Arbeitsaufgaben und Lese-/Schreibzugriff auf Quellcode (und zugehörige Ressource). Bereiche werden dem Benutzer beim Installieren der Erweiterung angezeigt. Weitere Informationen finden Sie in der vollständigen Liste der Bereiche.
Inanspruchnahme Ein Array von Anforderungen (Zeichenfolgen) mit den funktionen, die von Der 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 Der Erweiterung mit Der Erweiterung verpackt ist.
Beiträge Ein Array von Beiträgen zum System.
contributionTypes 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

Diese 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 der "Aufzugswinkel" Ihrer Erweiterung sein - ein paar Zeilen, um Ihre Erweiterung auf dem Marketplace zu beschreiben und die Benutzer 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 Array von Zeichenfolgentags, damit Benutzer Ihre Erweiterung finden können. Beispiele: agile, , task timerproject management, 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 element ist der Pfad zu der Datei in der Erweiterung.
content 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. Das path element 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 Array von Links zu externen Metadaten-Badges wie TravisCI, Appveyor usw. von den genehmigten Badges-Websites Gültige Schlüssel: href – Der Benutzer navigiert beim Auswählen des Badges. uri - Die absolute URL des anzuzeigenden Signalbilds. description - Beschreibung des Signals, das beim Daraufzeigen angezeigt werden soll.
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.

Markieren einer öffentlichen Erweiterung

Standardmäßig sind alle Erweiterungen im Azure DevOps Marketplace privat. Sie sind nur für den Herausgeber und die Konten sichtbar, die vom Herausgeber freigegeben wurden. 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, aber Sie noch einige Fehler herausarbeiten oder Funktionen hinzufügen, können Sie sie als preview:

{
    "galleryFlags": [
        "Preview"
    ]
}            

Markieren einer 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 einer Verlängerung als bezahlt

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

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

Sowohl die Kennzeichnung als __BYOLENFORCED auch das Paid Tag müssen vorhanden sein, um eine Erweiterung als kostenpflichtig auf dem 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. Herausgeber müssen Inhalte für die Preisregisterkarte in 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 entfernen wir die kostenpflichtige Lizenzierungsprüfung und erfordern keine Außerkraftsetzung mehr. Stellen Sie jetzt sicher, dass Die Erweiterung erwartungsgemäß angezeigt wird. Jede Außerkraftsetzung besteht aus einer "ID" und einem "Verhalten". Legen Sie die "ID" mit der ID der im Manifest definierten Beiträge überein.

"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 Abrechnung und Lizenzierung von Microsoft zum BYOL-Modell verschieben, wenden Sie sich an uns, um geeignete Schritte zu erhalten.

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

card

Marketplace Q & A - CustomerQnASupport-Eigenschaft

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-Fragen und -Antworten (Q&A), GitHub-Problemen oder einer benutzerdefinierten F&A-URL wählen. Sie können Q&A im Marketplace mithilfe der CustomerQnASupport-Eigenschaft im Manifest deaktivieren.

Standardoberfläche (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 für eine andere Oberfläche als eine der Standardoptionen die CustomerQnASupport-Eigenschaft im Manifest.

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

Eigenschaften

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

  • enablemarketplaceqna – boolesches Feld, für Marketplace festgelegt true oder benutzerdefinierte F&A; false zum Deaktivieren von Q&A
  • 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, die Verwendung von Marketplace Q &A anstelle von GitHub-Problemen

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

Beispiel: Erweiterungsdeaktivierung des F &A-Abschnitts

{
     "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 Bereiche

Kategorie `Scope` Name Beschreibung Erbt von
Erweiterte Sicherheit vso.advsec AdvancedSecurity (lesen) Gewährt die Möglichkeit, Warnungen, Ergebnisinstanzen, Analyseergebnisinstanzen zu lesen.
vso.advsec_write AdvancedSecurity (Lese- und Schreibzugriff) Gewährt die Möglichkeit, Analysen in Sarif hochzuladen vso.advsec
vso.advsec_manage AdvancedSecurity (Lesen, Schreiben und Verwalten) Gewährt die Möglichkeit, Analysen in Sarif 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 Agent-Pools (Lesen, verwalten) Gewährt die Möglichkeit, Pools, Warteschlangen und Agents zu verwalten. vso.agentpools
vso.environment_manage Umgebung (lesen, verwalten) Gewährt die Möglichkeit, Pools, Warteschlangen, Agents und Umgebungen zu verwalten. vso.agentpools_manage
Analyse vso.analytics Analyse (lesen) Gewährt die Möglichkeit, Analysedaten abzufragen.
Überwachung vso.auditlog Überwachungsprotokoll (gelesen) Gewährt Benutzern die Möglichkeit, das Überwachungsprotokoll zu lesen.
vso.auditstreams_manage Überwachungsdatenströme (lesen) Gewährt benutzern die Möglichkeit, Überwachungsdatenströme zu verwalten. vso.auditlog
Build vso.build Build (Lesen) Gewährt die Möglichkeit, auf Buildartefakte zuzugreifen, einschließlich Buildergebnissen, Definitionen und Anforderungen sowie die Möglichkeit, Benachrichtigungen über Buildereignisse über Dienst-Hooks zu empfangen. vso.hooks_write
vso.build_execute Build (Lesen und Ausführen) Gewährt die Möglichkeit, auf Buildartefakte zuzugreifen, einschließlich Buildergebnissen, Definitionen und Anforderungen sowie die Möglichkeit, einen Build in die Warteschlange zu stellen, Buildeigenschaften zu aktualisieren und Benachrichtigungen über Buildereignisse über Dienst-Hooks zu empfangen. vso.build
Code vso.code Code (Lesen) Gewährt die Möglichkeit, Quellcode und Metadaten zu Commits, Changesets, Verzweigungen und anderen Versionskontrollartefakten 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) Gewährt die Möglichkeit, Quellcode zu lesen, zu aktualisieren und zu löschen, auf Metadaten zu Commits, Änderungenets, Verzweigungen und anderen Versionssteuerungsartefakten zuzugreifen. Gewährt außerdem die Möglichkeit, Pullanforderungen und Codeüberprüfungen zu erstellen und zu verwalten und Benachrichtigungen über Versionssteuerungsereignisse über Dienst-Hooks zu erhalten. vso.code
vso.code_manage Code (Lesen, Schreiben und Verwalten) Gewährt die Möglichkeit, Quellcode zu lesen, zu aktualisieren und zu löschen, auf Metadaten zu Commits, Änderungenets, Verzweigungen und anderen Versionssteuerungsartefakten 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) Gewährt vollzugriff auf Quellcode, Metadaten zu Commits, Changesets, Verzweigungen und anderen Versionskontrollartefakten. 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. Umfasst auch eingeschränkte Unterstützung für Client-OM-APIs. vso.code_manage
vso.code_status Code (Status) Gewährt die Möglichkeit, 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 lokalen verbundenen Server benötigt werden.
Berechtigungen vso.entitlements Berechtigungen (Lesen) Bietet schreibgeschützten Zugriff auf den Endpunkt für Lizenzierungsberechtigungen zum Abrufen von Kontoberechtigungen.
vso.memberentitlementmanagement MemberEntitlement Management (lesen) Gewährt die Möglichkeit, Benutzer, ihre Lizenzen sowie Projekte und Erweiterungen zu lesen, auf die sie zugreifen können.
vso.memberentitlementmanagement_write MemberEntitlement Management (Schreiben) Gewährt die Möglichkeit, Benutzer, ihre Lizenzen sowie 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) 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 (Lese- und Schreibzugriff) Gewährt die Möglichkeit, Daten (Einstellungen und Dokumente) zu lesen und zu schreiben, die von installierten Erweiterungen gespeichert sind. vso.extension.data
Github Connections vso.githubconnections GitHub Connections (lesen) Gewährt die Möglichkeit, GitHub-Verbindungen und GitHub-Repositorydaten zu lesen.
vso.githubconnections_manage GitHub Connections (Lesen und Verwalten) Gewährt die Möglichkeit, GitHub-Verbindungen und GitHub-Repositorydaten zu lesen und zu verwalten vso.githubconnections
Graph & Identity vso.graph Graph (gelesen) Gewährt die Möglichkeit, Benutzer-, Gruppen-, Bereichs- und Gruppenmitgliedschaftsinformationen zu lesen.
vso.graph_manage Graph (verwalten) Gewährt die Möglichkeit, Benutzer-, Gruppen-, Bereichs- und Gruppenmitgliedschaftsinformationen zu lesen und Benutzer, Gruppen und Gruppenmitgliedschaften hinzuzufügen. vso.graph
vso.identity Identität (Lesen) Gewährt die Möglichkeit, Identitäten und Gruppen zu lesen.
vso.identity_manage Identität (verwalten) Gewährt die Möglichkeit, Identitäten und Gruppen zu lesen, zu schreiben und zu verwalten. vso.identity
Computergruppe vso.machinegroup_manage Bereitstellungsgruppe (lesen, verwalten) Bietet die Möglichkeit zum Verwalten von Bereitstellungsgruppen- und Agentpools. vso.agentpools_manage
Marketplace vso.gallery Marketplace Gewährt Lesezugriff auf öffentliche und private Elemente und Herausgeber. vso.profile
vso.gallery_acquire Marketplace (Erwerben) Gewährt Lesezugriff und die Möglichkeit, Elemente zu erwerben. vso.gallery
vso.gallery_publish Marketplace (veröffentlichen) Gewährt Lesezugriff und die Möglichkeit zum Hochladen, Aktualisieren und Freigeben von Elementen. vso.gallery
vso.gallery_manage Marketplace (verwalten) Gewährt Lesezugriff und die Möglichkeit, Elemente und Herausgeber zu veröffentlichen und zu verwalten. vso.gallery_publish
Benachrichtigungen vso.notification Benachrichtigungen (lesen) Bietet Lesezugriff auf Abonnements und Ereignismetadaten, einschließlich filterbarer Feldwerte. vso.profile
vso.notification_write Benachrichtigungen (Schreiben) Bietet Lese- und Schreibzugriff auf Abonnements und Lesezugriff auf Ereignismetadaten, einschließlich filterbarer Feldwerte. vso.notification
vso.notification_manage Benachrichtigungen (verwalten) Bietet Lese-, Schreib- und Verwaltungszugriff auf Abonnements und Lesezugriff auf Ereignismetadaten, einschließlich filterbarer Feldwerte. vso.notification_write
vso.notification_diagnostics Benachrichtigungen (Diagnose) Bietet Zugriff auf Benachrichtigungs-bezogene Diagnoseprotokolle und bietet die Möglichkeit, die Diagnose für einzelne Abonnements zu aktivieren. vso.notification
Verpackung vso.packaging Verpackung (lesen) Gewährt die Möglichkeit, Feeds und Pakete zu lesen. vso.profile
vso.packaging_write Verpackung (Lesen und Schreiben) Gewährt die Möglichkeit, Feeds und Pakete zu erstellen und zu lesen. vso.packaging
vso.packaging_manage Verpacken (Lesen, Schreiben und Verwalten) Gewährt die Möglichkeit, Feeds und Pakete zu erstellen, zu lesen, zu aktualisieren und zu löschen. vso.packaging_write
Pipelineressourcen vso.pipelineresources_use Pipelineressourcen (Verwendung) 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) 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_manage
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) Gewährt die Möglichkeit, Projekte und Teams zu erstellen, zu lesen, zu aktualisieren und zu löschen. vso.project_write
Release vso.release Release (lesen) Gewährt die Möglichkeit, Releaseartefakte zu lesen, einschließlich Versionen, Releasedefinitionen und Releaseumgebung. vso.profile
vso.release_execute Release (Lesen, Schreiben und Ausführen) Gewährt die Möglichkeit, Releaseartefakte zu lesen und zu aktualisieren, einschließlich Versionen, Releasedefinitionen und Releaseumgebung und die Möglichkeit, eine neue Version in die Warteschlange zu stellen. vso.release
vso.release_manage Release (Lesen, Schreiben, Ausführen und Verwalten) Gewährt die Möglichkeit zum Lesen, Aktualisieren und Löschen von Releaseartefakten, einschließlich Versionen, Releasedefinitionen und Releaseumgebung sowie der Möglichkeit, eine neue Version in die Warteschlange zu stellen und zu genehmigen. vso.release_manage
Sichere Dateien vso.securefiles_read Sichere Dateien (lesen) Gewährt die Möglichkeit, sichere Dateien zu lesen.
vso.securefiles_write Sichere Dateien (lesen, erstellen) Gewährt die Möglichkeit, sichere Dateien zu lesen und zu erstellen. vso.securefiles_read
vso.securefiles_manage Sichere Dateien (Lesen, Erstellen und Verwalten) Gewährt die Möglichkeit, sichere Dateien zu lesen, zu erstellen und zu verwalten. vso.securefiles_write
Security vso.security_manage Sicherheit (verwalten) Gewährt die Möglichkeit zum Lesen, Schreiben und Verwalten von Sicherheitsberechtigungen.
Verwenden einer Dienstverbindung 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) Gewährt die Möglichkeit zum Lesen, Abfragen und Verwalten von Dienstendpunkten. vso.serviceendpoint_query
Service Hooks vso.hooks Service-Hooks (lesen) Gewährt die Möglichkeit, Diensthakenabonnements und Metadaten zu lesen, einschließlich unterstützter Ereignisse, Consumer und Aktionen. (Nicht mehr öffentlich.) vso.profile
vso.hooks_write Service-Hooks (Lese- und Schreibzugriff) Gewährt die Möglichkeit, Service Hook-Abonnements zu erstellen und zu aktualisieren und Metadaten zu lesen, einschließlich unterstützter Ereignisse, Consumer und Aktionen. (Nicht mehr öffentlich.) vso.hooks
vso.hooks_interact Diensthaken (interagieren) Gewährt die Möglichkeit, über Dienst-Hooks empfangene Ereignisse zu interagieren und 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 Erstellen und Lesen von Einstellungen.
Symbols vso.symbols Symbole (gelesen) 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, erstellen) Gewährt die Möglichkeit zum Lesen und Erstellen von Aufgabengruppen. vso.taskgroups_read
vso.taskgroups_manage Aufgabengruppen (Lesen, Erstellen und Verwalten) Gewährt die Möglichkeit, Taskgroups zu lesen, zu erstellen und zu verwalten. vso.taskgroups_write
Teamdashboard vso.dashboards Teamdashboards (lesen) Gewährt die Möglichkeit, Team-Dashboardinformationen zu lesen.
vso.dashboards_manage Teamdashboards (verwalten) Gewährt die Möglichkeit, Team-Dashboardinformationen zu verwalten. vso.dashboards
Testverwaltung vso.test Testverwaltung (lesen) Gewährt die Möglichkeit, Testpläne, Fälle, Ergebnisse und andere artefaktbezogene Testverwaltung zu lesen. vso.profile
vso.test_write Testverwaltung (Lese- und Schreibzugriff) Gewährt die Möglichkeit, Testpläne, Fälle, Ergebnisse und andere artefaktbezogene Testverwaltung zu lesen, zu erstellen und zu aktualisieren. vso.test
Threads vso.threads_full PR-Threads Gewährt die Möglichkeit zum Lesen und Schreiben zum Abrufen von Kommentarthreads für Anforderungskommentare.
Token vso.tokens Delegierte Autorisierungstoken Gewährt benutzern die Möglichkeit, delegierte Autorisierungstoken zu verwalten.
vso.tokenadministration Tokenverwaltung Gewährt die Möglichkeit, vorhandene Token für Organisationsadministratoren zu verwalten (anzeigen und 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
Variable Gruppen vso.variablegroups_read Variable Gruppen (lesen) Gewährt die Möglichkeit, Variablengruppen zu lesen.
vso.variablegroups_write Variable Gruppen (lesen, erstellen) Gewährt die Möglichkeit zum Lesen und Erstellen von Variablengruppen. vso.variablegroups_read
vso.variablegroups_manage Variable Gruppen (lesen, erstellen und verwalten) Gewährt die Möglichkeit zum Lesen, Erstellen und Verwalten von Variablengruppen. vso.variablegroups_write
Wiki vso.wiki Wiki (gelesen) 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, Bereiche und Iterationspfade für andere Pfade für die Nachverfolgung verwandter Arbeitsaufgaben zu aktualisieren, Abfragen auszuführen und Benachrichtigungen über Arbeitsaufgabenereignisse über Diensthaken zu erhalten. vso.work
vso.work_full Arbeitsaufgaben (vollständig) Gewährt vollzugriff auf Arbeitsaufgaben, Abfragen, Backlogs, Pläne und Metadaten zur Nachverfolgung von Arbeitsaufgaben. Bietet außerdem die Möglichkeit, Benachrichtigungen über Arbeitsaufgabenereignisse über Service-Hooks zu empfangen. vso.work_write
Benutzeridentitätswechsel user_impersonation Benutzeridentitätswechsel Vollzugriff auf REST-APIs von Visual Studio Team Services. Fordern Sie diesen Bereich mit Vorsicht an und/oder stimmen Sie zu, da es 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 ein Benutzer angezeigt, der ggf. installierte Erweiterungen eine Autorisierung erfordern:

Bereichsänderung

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

Dialogfeld

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 beiden. Verknüpfung 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 in beide. Verknüpfung 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, mit denen sie arbeiten, aber nicht in Azure DevOps installieren.

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-IDs unterstützen einen Microsoft.TeamFoundation.Server Microsoft.TeamFoundation.Server.Integrationoptionalen 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 mithilfe von:
    • [: Mindestversion inklusive
    • ]: Maximale Version inklusive
    • (: Mindestversion exklusiv
    • ): maximale Version exklusiv

Versionsnummern für Azure DevOps Server:

Release Releases Version
2010 Alle Releases 10,0
2012 Alle Releases 11,0
2013 RTM und Updates 12.0, 12.1, 12.2, 12.3, 12.4
2015 RTM und Updates 14.0, 14.1, 14.2, 14.3
2017 RTM und Updates 15.0, 15.1
2018 RTM und Updates 16,0
2019 RTM und Updates 17.0
2020 RTM und Updates 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,)"
        }
    ]
}

Verknüpfungen

Microsoft.VisualStudio.Services ist eine Verknüpfung für Azure DevOps.

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

entspricht:

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

Verwenden von Installationszielen und Anforderungen

Installationsziele und Anforderungen werden zusammen verwendet, um Benutzern eine korrekte Ansicht der Produkte/Dienste zu präsentieren, mit denen Ihre Erweiterung oder Integration kompatibel ist. Wenn Sie z. B. ein Installationsziel für Microsoft.VisualStudio.Services eine Anforderung angeben api-version/3.0 , 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 Installationsziele 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 Installationsziele 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) werden, bevor Die Erweiterung installiert werden kann.

Unterstützte Anforderungen

Typ Beschreibung Bei der Veröffentlichung überprüft? Bei der Installation überprü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) No Ja
extension/{id} Erfordert, dass eine bestimmte Erweiterung installiert/aktiviert ist No Ja
contribution/{id} Erfordert, dass ein bestimmter Beitrag verfügbar ist No Ja
contributionType/{id} Erfordert, dass ein bestimmter Beitragstyp verfügbar ist. No Ja

Hinweis

  • Verwenden Und environment/cloud environment/onprem nur, wenn Ihre Erweiterung topologiebezogene Anforderungen enthält, die in dieser bestimmten Umgebung ausgeführt werden müssen.
  • extension, contributionund contributionType Anforderungen werden zur Installationszeit ausgewertet und erfordert, dass die angegebene Erweiterung bereits installiert und in der Organisation/Sammlung 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 Stammverzeichnis sein kann.
  • adressierbar – (optional) Auf "true" festgelegt, 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 aus Ihrem Stammverzeichnis abgerufen.
  • contentType – (optional) MIME-Typ der Datei. Wird standardmäßig basierend auf den Dateierweiterungs- und Betriebssystemeinstellungen am besten erraten.
  • 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. Der Standardwert ist "packagePath".
  • lang – (optional) Sprache dieser Ressource. Lokalisierte Dateien werden basierend auf dem Header "Accept-Language" bereitgestellt. Lassen Sie nichts, um zu kennzeichnen, dass sich diese Datei in der Standardsprache (oder fallback) 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. Tragen Sie jede Beitrags-ID innerhalb einer Erweiterung eindeutig aus. Siehe Referenzierung von Beiträgen und Typen.
  • type - The ID of the contributionType of this contributionType of this contribution.
  • description - (Optional) Eine Zeichenfolge, die beschreibt, was der Beitrag bereitstellt.
  • targets - Ein Array von Beitrags-IDs, auf die der Beitrag ausgerichtet ist (mitwirkend). Siehe "Beiträge zum Adressierungszielen".
  • properties - (Optional) An object that includes properties for the contribution as defined in the contribution type.

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 Anzeigename 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 von diesem Typ verwendet werden können.

Eigenschaftenbeschreibungen weisen die folgenden Eigenschaften auf:

  • 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 - The type of value that the property can have, which could be string, uri, guid, boolean, integer, double, dateTime, array, or object.

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

Verweisen auf Beiträge und Typen

Verwenden Sie eindeutige Bezeichner, um auf Beiträge und Beitragstypen zu verweisen. Referenztypen mit der type Eigenschaft und Verweisen 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 (.). Ist z. B. der vollständige Bezeichner für den Beitrag mit dem Bezeichner "hub" in der Erweiterung "vss-web", ms.vss-web.hub die vom Herausgeber "ms" (Microsoft) veröffentlicht wird.
  • 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" in der zuvor erwähnten Erweiterung "vss-web" als Verknüpfung für "ms.vss-web.hub" verwendet werden.

Adressierung von Beiträgen

Einige Beiträge dienen als Container für andere Beiträge.

  • 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 Signaldienste

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 Signal von einem anderen Dienst anzuzeigen, wenden Sie sich an den Kundensupport am Entwicklercommunity.

Beispielmanifest

Die folgende Erweiterung trägt eine Aktion zum abgeschlossenen Builds-Kontextmenü und einen Hub zur Build Hub-Gruppe bei:

{
    "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"
            }
        }
    ]
}