Erweiterungsmanifestreferenz

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019 | TFS 2018

Jede Erweiterung verfügt über eine JSON-Manifestdatei, die grundlegende Informationen zur Erweiterung definiert. Die Datei definiert auch, wie sie die Benutzeroberflä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 mit dem Azure DevOps-Erweiterungs-SDK an.

Erstellen Sie eine Datei namens vss-extension.json im Stammverzeichnis Ihres Erweiterungsordners. Diese Datei enthält erforderliche Attribute, z. B. die ID der Erweiterung und ihre Installationsziele, in denen sie ausgeführt werden kann. Außerdem wird die Beiträge definiert, die ihre Erweiterung erstellt.

Sehen Sie sich das folgende Beispiel für ein typisches Manifest 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"
        }
    ]
}

Erforderliche Attribute

Diese Eigenschaften sind erforderlich:
Eigenschaft BESCHREIBUNG Hinweise
manifestVersion Eine Zahl, die der Version des Manifestformats entspricht. Sollte sein 1.
ID Der Bezeichner der Erweiterung. Die 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 das Format major.minor.patchaufweisen, 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, 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. Weitere Informationen finden Sie unter Erstellen und Verwalten eines Herausgebers.
categories Array von Zeichenfolgen, die die Kategorien darstellen, zu denen ihre Erweiterung gehört. Es muss mindestens eine Kategorie bereitgestellt werden, und es gibt keine Beschränkung für die Anzahl der Kategorien, die Sie einschließen können. Gültige Werte: Azure Repos, Azure Boards, Azure Pipelines, Azure Test Plansund Azure Artifacts.

Hinweise:
  • Verwenden Sie Version >=0.6.3 der tfx-cli, wenn Sie die Erweiterung programmgesteuert veröffentlichen.
  • Wenn Sie die Erweiterung Aufgaben der Azure DevOps-Erweiterung für die Veröffentlichung verwenden, stellen Sie sicher, dass die Version = 1.2.8 lautet >. Möglicherweise müssen Sie das Erweiterungsupdate aufgrund kürzlicher Bereichsänderungen genehmigen.
  • Die zuvor genannten Kategorien sind nativ im Visual Studio Marketplace und Azure DevOps Server 2019 & oben vorhanden. Für Erweiterungen, die auf frühere Versionen von TFS ausgerichtet sind:
    • 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) für einen Kunden freigeben möchten, der TFS <=2018 verwendet, verwenden Sie stattdessen die folgenden Kategorien: Code, Planen und Nachverfolgen, Erstellen und Freigeben, Testen, Zusammenarbeiten und Integrieren. Wenn Sie beide über Visual Studio Marketplace und direkt für einen TFS <= 2018-Kunden freigeben müssen, benötigen Sie zwei Erweiterungspakete.
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 über ein id Feld verfügt, das eines der folgenden Angibt:
  • Microsoft.VisualStudio.Services (Erweiterungen, die mit Azure DevOps oder TFS funktionieren),
  • 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), die für Ihre Erweiterung erforderlich sind. Und gibt beispielsweise an, vso.workvs.code_write dass Ihre Erweiterung schreibgeschützten Zugriff auf Arbeitselemente und Lese-/Schreibzugriff auf Quellcode (und die zugehörige Ressource) benötigt. Bereiche werden dem Benutzer bei der Installation der Erweiterung angezeigt. Weitere Informationen finden Sie in der vollständigen Liste der Bereiche.
Anforderungen Ein Array von Anforderungen (Zeichenfolgen), das die funktionen auflistet, die für Ihre Erweiterung erforderlich sind. 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 mit Ihrer Erweiterung gepackt ist.
Beiträge Ein Array von Beiträge zum System.
contributionTypes Ein Array von Beitragstypen, die von der Erweiterung definiert werden
{
    "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 ermitteln und zu erfahren:

Eigenschaft BESCHREIBUNG Hinweise
Beschreibung Einige Sätze, die die Erweiterungen beschreiben. Auf 200 Zeichen beschränkt. Die Beschreibung sollte der "Aufzugsabstand" Ihrer Erweiterung sein– ein paar Zeilen, um Ihre Erweiterung im Marketplace zu beschreiben und die Benutzer dazu zu bringen, sie zu installieren. Sehen Sie sich das folgende Beispiel an.
Symbole 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, um Benutzern bei der Suche nach Ihrer Erweiterung zu helfen. Beispiele: agile, project management, task timerusw.
Screenshots Array von Bildern, die nicht in Ihren Inhalt aufgenommen 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. Die path der einzelnen Elemente ist der Pfad zur Datei in der Erweiterung.
content Wörterbuch der 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 reichhaltig, nutzbar, und fügen Sie bei Bedarf Screenshots hinzu. Schließen Sie eine overview.md Datei als Basisinhaltselement ein. Es wird davon ausgegangen, dass jede Datei GitHub Flavored Markdown Format aufweist. Die path der einzelnen Elemente ist der Pfad zur Markdowndatei in der Erweiterung. Gültige Schlüssel: details. Andere Schlüssel können in Zukunft unterstützt werden.
Links Wörterbuch der 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, die Benutzern helfen, Ihre Erweiterung oder Ihren Dienst besser zu verstehen. license - Endbenutzer-Lizenzvertrag. privacypolicy - Datenschutzrichtlinie für eine Erweiterung. support – Hilfe und Support für eine Erweiterung erhalten. Der Wert jedes Schlüssels ist ein Objekt mit einem uri Feld, das die absolute URL des Links darstellt.
Repository Wörterbuch der Eigenschaften, die das Quellcoderepository für die Erweiterung beschreiben Gültige Schlüssel: type - Typ des Repositorys. Beispiel: git. uri – Absolute URL des Repositorys.
Abzeichen Array von Links zu externen Metadaten-Badges wie TravisCI, Appveyor usw. von den genehmigten Badges-Websites Gültige Schlüssel: href – Link, zu dem der Benutzer beim Auswählen des Badges navigiert. uri – Die absolute URL des anzuzeigenden Badgebilds. description - Beschreibung des Badges, der beim Zeigen angezeigt werden soll.
Branding Wörterbuch der markenbezogenen Eigenschaften. Gültige Schlüssel: color - Primärfarbe der Erweiterung oder des Herausgebers; kann ein Hexadezimal (#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.

Öffentliches Markieren einer Erweiterung

Standardmäßig sind alle Erweiterungen im Azure DevOps Marketplace privat. Sie sind nur für den Herausgeber und konten sichtbar, die vom Herausgeber gemeinsam genutzt werden. Wenn Ihr Herausgeber überprüft wurde, können Sie Ihre Erweiterung öffentlich machen, indem Sie das Public Flag in Ihrem Erweiterungsmanifest festlegen:

{
    "galleryFlags": [
        "Public"
    ]
}            

Oder:

{
    "public": true
}            

Weitere Informationen finden Sie unter Paket/Veröffentlichen/Installieren.

Markieren einer Erweiterung als Vorschauversion

Wenn Ihre Erweiterung für Benutzer im Marketplace bereit ist, sie zu testen, sie aber noch einige Fehler ausarbeiten oder eine Funktion hinzufügen, können Sie sie als previewmarkieren:

{
    "galleryFlags": [
        "Preview"
    ]
}            

Markieren einer Erweiterung als kostenpflichtige Vorschau

Wenn Sie Beabsichtigen, Ihre Erweiterung im Marketplace zu verkaufen, markieren Sie sie als kostenpflichtige Vorschau. Eine als free gekennzeichnete Erweiterung kann nicht in kostenpflichtig geändert werden.

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

Markieren einer Erweiterung als bezahlt

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

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

Sowohl das Flag __BYOLENFORCED als auch das Paid Tag müssen vorhanden sein, um eine Erweiterung im Marketplace als bezahlt zu kennzeichnen. Bring-Your-Own-License (BYOL) bedeutet, dass der Herausgeber der Erweiterung den Abrechnungs- und Lizenzierungsmechanismus für die Erweiterung bereitstellt, da er nicht von Microsoft für Azure DevOps-Erweiterungen bereitgestellt wird. Alle kostenpflichtigen Erweiterungen sind erforderlich, um Datenschutzrichtlinien, Supportrichtlinien und einen Endbenutzer-Lizenzvertrag zu definieren. Außerdem müssen Herausgeber 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 die kostenpflichtige Lizenzierung außer Kraft zu setzen. In Zukunft werden wir die kostenpflichtige Lizenzierungsüberprüfung entfernen und die Außerkraftsetzung nicht mehr erfordern. Stellen Sie vorerst sicher, dass Ihre Erweiterung wie erwartet angezeigt wird. Jede Außerkraftsetzung besteht aus einer "ID" und einem "Verhalten". Die "ID" muss mit der ID des im Manifest definierten Beiträge übereinstimmen.

"licensing": {

      "overrides": [

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

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

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

Hinweis

Wenn Sie TFS als Ziel verwenden möchten, aber keine Download-Option für Ihre Erweiterung anzeigen möchten, fügen Sie das __DoNotDownload Tag (beginnt mit zwei Unterstrichen) dem Erweiterungsmanifest hinzu. Wenn Sie eine Erweiterung von der zuvor von Microsoft angebotenen Abrechnungslizenzierung & auf das BYOL-Modell umstellen, wenden Sie sich an uns, und wir stellen Ihnen die entsprechenden Schritte zur Verfügung.

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 die Detailseite

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

card

Marketplace Q & A – CustomerQnASupport-Eigenschaft

Alle Erweiterungen im Visual Studio Marketplace verfügen über einen Q&A-Abschnitt, um 1:1 ö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 mithilfe der CustomerQnASupport-Eigenschaft im Manifest deaktivieren.

Standardumgebung (Es sind keine Änderungen am Manifest erforderlich)

  • Bei Erweiterungen mit einem GitHub-Repository leitet Marketplace Benutzer im Q&A-Abschnitt an die zugehörigen GitHub-Probleme um.
  • Für Erweiterungen ohne GitHub-Repository ist Marketplace Q&A aktiviert.

Verwenden Sie für eine andere Benutzeroberfläche als eine der Standardoptionen die CustomerQnASupport-Eigenschaft im Manifest.

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

Eigenschaften

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

  • enablemarketplaceqna – boolesches Feld, für Marketplace oder benutzerdefinierte Q&A auf TRUE festgelegt; false zum Deaktivieren von Q&A
  • url : Zeichenfolge, URL für benutzerdefinierte Q&A

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

Beispiel: Erweiterung mit benutzerdefinierter Q & A

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

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

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

Beispiel: Erweiterung zum Deaktivieren des Q & A-Abschnitts

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

Bereiche

Ihre Erweiterung kann einen oder mehrere Bereiche angeben. Bereiche steuern, auf welche Ressourcen ihre Erweiterung zugreifen kann und welche Vorgänge Ihre Erweiterung mit diesen Ressourcen ausführen darf. Die Bereiche, die Sie in Ihrem Erweiterungsmanifest angeben, sind die Bereiche, die für Zugriffstoken festgelegt sind, die für Ihre Erweiterung ausgestellt werden. Weitere Informationen finden Sie unter Authentifizierung und Sicherheit.

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

Unterstützte Bereiche

Category `Scope` Name BESCHREIBUNG
Agent-Pools vso.agentpools Agentpools (lesen) Ermöglicht das Anzeigen von Aufgaben, Pools, Warteschlangen, Agents und aktuell ausgeführten oder kürzlich abgeschlossenen Aufträgen für Agents.
vso.agentpools_manage Agent-Pools (lesen, verwalten) Gewährt die Möglichkeit, Pools, Warteschlangen und Agents zu verwalten.
vso.environment_manage Umgebung (lesen, verwalten) Ermöglicht die Verwaltung von Pools, Warteschlangen, Agents und Umgebungen.
Analyse vso.analytics Analyse (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) Gewährt Benutzern die Möglichkeit, Überwachungsdatenströme zu verwalten.
Build vso.build Build (lesen) Ermöglicht den Zugriff auf Buildartefakte, einschließlich Buildergebnissen, Definitionen und Anforderungen, sowie die Möglichkeit, Benachrichtigungen über Buildereignisse über Diensthooks zu empfangen.
vso.build_execute Erstellen (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 Diensthooks zu empfangen.
Code vso.code Code (Lesen) Ermöglicht das Lesen von Quellcode und Metadaten zu Commits, Changesets, Branches und anderen Versionskontrollartefakten. Bietet außerdem die Möglichkeit, Code zu suchen und über Versionskontrollereignisse über Diensthooks benachrichtigt zu werden.
vso.code_write Code (Lese- und Schreibzugriff) Ermöglicht das Lesen, Aktualisieren und Löschen von Quellcode, den Zugriff auf Metadaten zu Commits, Changesets, Branches und anderen Versionskontrollartefakten. Ermöglicht außerdem das Erstellen und Verwalten von Pull Requests und Code Reviews sowie das Empfangen von Benachrichtigungen zu Versionskontrollereignissen über Diensthooks.
vso.code_manage Code (Lesen, Schreiben und Verwalten) Ermöglicht das Lesen, Aktualisieren und Löschen von Quellcode, den Zugriff auf Metadaten zu Commits, Changesets, Branches und anderen Versionskontrollartefakten. Bietet außerdem die Möglichkeit, Coderepositorys zu erstellen und zu verwalten, Pull Requests und Code Reviews zu erstellen und zu verwalten sowie Benachrichtigungen zu Versionskontrollereignissen über Diensthooks zu erhalten.
vso.code_full Code (vollständig) Gewährt vollzugriff auf Quellcode, Metadaten zu Commits, Changesets, Branches und anderen Versionskontrollartefakten. Bietet außerdem die Möglichkeit, Coderepositorys zu erstellen und zu verwalten, Pull Requests und Code Reviews zu erstellen und zu verwalten sowie Benachrichtigungen zu Versionskontrollereignissen über Diensthooks zu erhalten. Umfasst auch eingeschränkte Unterstützung für Client OM-APIs.
vso.code_status Code (status) Gewährt die Möglichkeit, Commits und Pull Request-status 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.
Ansprüche vso.entitlements Berechtigungen (Lesen) Bietet schreibgeschützten Zugriff auf den Lizenzierungsberechtigungsendpunkt, um Kontoberechtigungen abzurufen.
vso.memberentitlementmanagement MemberEntitlement Management (read) Gewährt die Möglichkeit, Benutzer, ihre Lizenzen sowie Projekte und Erweiterungen zu lesen, auf die sie zugreifen können.
vso.memberentitlementmanagement_write MemberEntitlement-Verwaltung (Schreiben) Gewährt die Möglichkeit, Benutzer, deren Lizenzen sowie Projekte und Erweiterungen zu verwalten, auf die sie zugreifen können.
Erweiterungen vso.extension Erweiterungen (lesen) Gewährt die Möglichkeit, installierte Erweiterungen zu lesen.
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.data Erweiterungsdaten (lesen) Ermöglicht das Lesen von Daten (Einstellungen und Dokumenten), die von installierten Erweiterungen gespeichert sind.
vso.extension.data_write Erweiterungsdaten (Lese- und Schreibzugriff) Ermöglicht das Lesen und Schreiben von Daten (Einstellungen und Dokumente), die von installierten Erweiterungen gespeichert sind.
Graphidentität & vso.graph Graph (lesen) Ermöglicht das Lesen von Benutzer-, Gruppen-, Bereichs- und Gruppenmitgliedschaftsinformationen.
vso.graph_manage Graph (verwalten) Gewährt die Möglichkeit, Benutzer-, Gruppen-, Bereichs- und Gruppenmitgliedschaftsinformationen zu lesen sowie Benutzer, Gruppen hinzuzufügen und Gruppenmitgliedschaften zu verwalten.
vso.identity Identität (Lesen) Gewährt die Möglichkeit, Identitäten und Gruppen zu lesen.
vso.identity_manage Identität (Verwalten) Ermöglicht das Lesen, Schreiben und Verwalten von Identitäten und Gruppen.
Auslastungstest vso.loadtest Auslastungstest (Lesen) Gewährt die Möglichkeit, Ihre Auslastungstestausführungen, Testergebnisse und APM-Artefakte zu lesen.
vso.loadtest_write Auslastungstest (Lese- und Schreibzugriff) Ermöglicht das Erstellen und Aktualisieren von Auslastungstestausführungen sowie das Lesen von Metadaten, einschließlich Testergebnissen und APM-Artefakten.
Computergruppe vso.machinegroup_manage Bereitstellungsgruppe (lesen, verwalten) Bietet die Möglichkeit, Bereitstellungsgruppen und Agentpools zu verwalten.
Marketplace vso.gallery Marketplace Gewährt Lesezugriff auf öffentliche und private Elemente und Herausgeber.
vso.gallery_acquire Marketplace (erwerben) Gewährt Lesezugriff und die Möglichkeit, Elemente zu erwerben.
vso.gallery_publish Marketplace (veröffentlichen) Gewährt Lesezugriff und die Möglichkeit zum Hochladen, Aktualisieren und Freigeben von Elementen.
vso.gallery_manage Marketplace (verwalten) Gewährt Lesezugriff und die Möglichkeit, Elemente und Herausgeber zu veröffentlichen und zu verwalten.
Benachrichtigungen vso.notification Benachrichtigungen (lesen) Bietet Lesezugriff auf Abonnements und Ereignismetadaten, einschließlich filterbarer Feldwerte.
vso.notification_write Benachrichtigungen (Schreiben) Bietet Lese- und Schreibzugriff auf Abonnements und Lesezugriff auf Ereignismetadaten, einschließlich filterbarer Feldwerte.
vso.notification_manage Benachrichtigungen (verwalten) Bietet Lese-, Schreib- und Verwaltungszugriff auf Abonnements und Lesezugriff auf Ereignismetadaten, einschließlich filterbarer Feldwerte.
vso.notification_diagnostics Benachrichtigungen (Diagnose) Bietet Zugriff auf benachrichtigungsbezogene Diagnoseprotokolle und die Möglichkeit, Diagnose für einzelne Abonnements zu aktivieren.
Verpackung vso.packaging Verpackung (lesen) Gewährt die Möglichkeit, Feeds und Pakete zu lesen.
vso.packaging_write Packen (Lesen und Schreiben) Gewährt die Möglichkeit, Feeds und Pakete zu erstellen und zu lesen.
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.
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.
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_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.
Release vso.release Release (lesen) Ermöglicht das Lesen von Releaseartefakten, einschließlich Releases, Releasedefinitionen und Releaseumgebung.
vso.release_execute Release (Lesen, Schreiben und Ausführen) Ermöglicht das Lesen und Aktualisieren von Releaseartefakten, einschließlich Releases, Releasedefinitionen und Releaseumgebung, sowie die Möglichkeit, eine neue Version in die Warteschlange zu stellen.
vso.release_manage Release (Lesen, Schreiben, Ausführen und Verwalten) Ermöglicht das Lesen, Aktualisieren und Löschen von Releaseartefakten, einschließlich Releases, Releasedefinitionen und Releaseumgebung sowie die Möglichkeit, eine neue Version in die Warteschlange zu stellen und zu genehmigen.
Sichern von 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_manage Sichern von Dateien (Lesen, Erstellen und Verwalten) Gewährt die Möglichkeit, sichere Dateien zu lesen, zu erstellen und zu verwalten.
Sicherheit 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.serviceendpoint_query Dienstendpunkte (Lesen und Abfragen) Gewährt die Möglichkeit, Dienstendpunkte zu lesen und abzufragen.
vso.serviceendpoint_manage Dienstendpunkte (Lesen, Abfragen und Verwalten) Ermöglicht das Lesen, Abfragen und Verwalten von Dienstendpunkten.
Einstellungen vso.settings Einstellungen (lesen) Gewährt die Möglichkeit, Einstellungen zu lesen.
vso.settings_write Einstellungen (Lese- und Schreibzugriff) Gewährt die Möglichkeit, Einstellungen zu erstellen und zu lesen.
Symbols vso.symbols Symbole (lesen) Gewährt die Möglichkeit, Symbole zu lesen.
vso.symbols_write Symbole (Lesen und Schreiben) Gewährt die Möglichkeit, Symbole zu lesen und zu schreiben.
vso.symbols_manage Symbole (Lesen, Schreiben und Verwalten) Gewährt die Möglichkeit, Symbole zu lesen, zu schreiben und zu verwalten.
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, Aufgabengruppen zu lesen und zu erstellen.
vso.taskgroups_manage Aufgabengruppen (Lesen, Erstellen und Verwalten) Gewährt die Möglichkeit, Taskgruppen zu lesen, zu erstellen und zu verwalten.
Teamdashboard vso.dashboards Teamdashboards (lesen) Gewährt die Möglichkeit, Team- Dashboard Informationen zu lesen.
vso.dashboards_manage Teamdashboards (verwalten) Gewährt die Möglichkeit, Team-Dashboard Informationen zu verwalten.
Testverwaltung vso.test Testverwaltung (lesen) Ermöglicht das Lesen von Testplänen, Fällen, Ergebnissen und anderen Artefakten im Zusammenhang mit der Testverwaltung.
vso.test_write Testverwaltung (Lese- und Schreibzugriff) Ermöglicht das Lesen, Erstellen und Aktualisieren von Testplänen, Fällen, Ergebnissen und anderen Artefakten im Zusammenhang mit der Testverwaltung.
Threads vso.threads_full PR-Threads Gewährt die Möglichkeit zum Lesen und Schreiben von Pull Request-Kommentarthreads.
Token vso.tokens Delegierte Autorisierungstoken Gewährt Benutzern die Möglichkeit, delegierte Autorisierungstoken zu verwalten.
vso.tokenadministration Tokenverwaltung Gewährt organization Administratoren die Möglichkeit, vorhandene Token zu verwalten (anzuzeigen und zu widerrufen).
Benutzerprofil vso.profile Benutzerprofil (Lesen) Gewährt die Möglichkeit, Ihr Profil, Ihre 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.
Variablengruppen vso.variablegroups_read Variablengruppen (lesen) Gewährt die Möglichkeit, Variablengruppen zu lesen.
vso.variablegroups_write Variablengruppen (lesen, erstellen) Gewährt die Möglichkeit, Variablengruppen zu lesen und zu erstellen.
vso.variablegroups_manage Variablengruppen (Lesen, Erstellen und Verwalten) Gewährt die Möglichkeit, Variablengruppen zu lesen, zu erstellen und zu verwalten.
Wiki vso.wiki Wiki (lesen) Ermöglicht das Lesen von Wikis, Wiki-Seiten und Wiki-Anlagen. 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.
Arbeitselemente vso.work Arbeitselemente (Lesen) Ermöglicht das Lesen von Arbeitselementen, Abfragen, Boards, Bereichs- und Iterationspfaden und anderen Metadaten zur Nachverfolgung von Arbeitselementen. Bietet außerdem die Möglichkeit, Abfragen auszuführen, Arbeitselemente zu durchsuchen und Benachrichtigungen über Arbeitselementereignisse über Diensthooks zu erhalten.
vso.work_write Arbeitselemente (Lese- und Schreibzugriff) Ermöglicht das Lesen, Erstellen und Aktualisieren von Arbeitselementen und Abfragen, aktualisieren von Boardmetadaten, Lesebereichs- und Iterationspfaden für andere Metadaten im Zusammenhang mit der Nachverfolgung von Arbeitselementen, Ausführen von Abfragen und das Empfangen von Benachrichtigungen zu Arbeitselementereignissen über Diensthooks.
vso.work_full Arbeitselemente (Lesen, Schreiben und Verwalten) Gewährt Vollzugriff auf Arbeitselemente, Abfragen, Backlogs, Pläne und Metadaten zur Nachverfolgung von Arbeitselementen, einschließlich Prozessvorlagenimporten. Bietet auch die Möglichkeit, Benachrichtigungen über Arbeitselementereignisse über Diensthooks zu empfangen.

Ändern des Umfangs der veröffentlichten Erweiterung

Sie können den Bereich einer veröffentlichten Erweiterung ändern. Wenn Sie ihre Erweiterung zuvor installiert haben (und den vorherigen Satz von Bereichen autorisiert haben), müssen Sie die neuen Bereiche autorisieren, bevor Sie ein Upgrade auf die neueste Version durchführen können.

Im Abschnitt Aktion erforderlich des Erweiterungseinstellungshubs wird ein Benutzer angezeigt, für den ggf. für installierte Erweiterungen eine Autorisierung erforderlich ist:

Bereichsänderung

Ein Administrator kann dann den neuen Satz von Bereichen überprüfen und autorisieren:

Bereichsänderungsdialogfeld

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: wird in Azure DevOps Services installiert.
  • Microsoft.TeamFoundation.Server: wird in TFS installiert.
  • Microsoft.VisualStudio.Services: wird in beiden installiert. 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 TFS
  • Microsoft.VisualStudio.Services.Integration: ist in beides integriert. Tastenkombination für Microsoft.VisualStudio.Services.Cloud.Integration und Microsoft.TeamFoundation.Server.Integration

Weitere Informationen finden Sie unter Erweiterbarkeitspunkte.

Beispiele für Installationsziele

Beispiel: Erweiterung, die mit Azure DevOps funktioniert

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

Beispiel: Erweiterung, die nur mit Azure DevOps Services funktioniert

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

Installationsziele können auch im Manifest von Integrationen verwendet werden. Beispielsweise Produkte, Apps oder Tools, die mit funktionieren, aber nicht in Azure DevOps installiert werden.

Beispiel: Integration, die mit Azure DevOps funktioniert

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

Beispiel: Integration, die nur mit TFS funktioniert

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

Installationszielversionen

Einige Installationszielbezeichner wie Microsoft.TeamFoundation.Server und Microsoft.TeamFoundation.Server.Integrationunterstützen einen optionalen Versionsbereich. Dieser optionale Versionsbereich verdeutlicht die unterstützten Releases, für die die Erweiterung oder Integration unterstützt wird.

Die Version oder der Versionsbereich wird über das version Feld im Installationszielobjekt angegeben. Dieser Wert kann wie folgt 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] (Update 3 bis 2017 Update 1) Bereichswerte werden wie folgt optimiert:
    • [: Mindestversion inklusive
    • ]: Maximale Version inklusive
    • (: Mindestversion exklusiv
    • ): maximale Version exklusiv

Versionsnummern für Azure DevOps Server:

Freigabe 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 gemeinsam verwendet, um Benutzern eine korrekte Sicht auf die Produkte/Dienste zu bieten, mit denen Ihre Erweiterung oder Integration kompatibel ist. Die Angabe eines Installationsziels von Microsoft.VisualStudio.Services mit einer Anforderung von api-version/3.0 bedeutet, dass die Erweiterung mit Azure DevOps funktioniert.

Tipp

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

Beispiel: Erweiterung, die ApIs der Version 3.0 verwendet

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

Löst zu den folgenden Installationszielen auf:

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

Beispiel: Integration mit ApIs der Version 2.0

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

Löst zu den folgenden Installationszielen auf:

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

Forderungen

Mithilfe von Anforderungen können Sie Funktionen und andere Features angeben, die für Ihre Erweiterung erforderlich sind. 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 aufzulisten, mit denen Ihre Erweiterung kompatibel ist. So können Kunden beispielsweise nachvollziehen, ob Ihre Erweiterung mit ihrer Azure DevOps-Version funktioniert.

Sehen Sie sich das folgende Beispiel an, 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

type BESCHREIBUNG Bei der Veröffentlichung aktiviert? 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) Nein Ja
extension/{id} Erfordert die Installation/Aktivierung einer bestimmten Erweiterung. Nein Ja
contribution/{id} Erfordert, dass ein spezifischer Beitrag verfügbar ist Nein Ja
contributionType/{id} Erfordert die Verfügbarkeit eines bestimmten Beitragstyps Nein Ja

Hinweis

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

Dateien

In files diesem Abschnitt verweisen Sie auf alle Dateien, die Sie in Ihre Erweiterung aufnehmen möchten. Sie können sowohl Ordner als auch 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.
  • addressable – (optional) Legen Sie auf true fest , wenn Ihre Datei URL-adressierbar sein soll. Die Standardwerte sind false.
  • packagePath – (optional) Pfad zur Ressource innerhalb des Pakets. Standardmäßig wird der relative Pfad auf dem Datenträger aus Ihrem Stammverzeichnis angegeben.
  • contentType – (optional) MIME-Typ der Datei. Standardmäßig wird eine beste Schätzung basierend auf der Dateierweiterung und den Betriebssystemeinstellungen festgelegt.
  • assetType – (optional) Geben Sie den Wert des Type-Attributs des Asseteintrags im VSIX-Manifest an. Kann auch ein Array von Zeichenfolgen sein. In diesem Fall werden mehrere Ressourceneinträge für diese Datei hinzugefügt. Standardmäßig wird packagePath verwendet.
  • lang – (optional) Sprache dieses Assets. Lokalisierte Dateien werden basierend auf dem Accept-Language-Header bereitgestellt. Lassen Sie leer, um zu signalisieren, dass sich diese Datei in der Standardsprache (oder Fallbacksprache) befindet. Lokalisierte Versionen derselben Datei sollten denselben assetType aufweisen.

Beiträge

Jeder Beitragseintrag weist die folgenden Eigenschaften auf:

  • id : Eine Verweis-ID (Zeichenfolge) für den Beitrag. Die ID jedes Beitrags muss innerhalb einer Erweiterung eindeutig sein. Weitere Informationen finden Sie unter Verweisen auf Beiträge und Typen.
  • type : Die ID des BeitragTyps dieses Beitrags.
  • description – (Optional) Eine Zeichenfolge, die beschreibt, was der Beitrag bereitstellt.
  • targets : Ein Array von Beitrags-IDs, auf die der Beitrag abzielt (zu dem der Beitrag beiträgt). Weitere Informationen finden Sie unter Targeting Beiträge.
  • Properties – (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 Verweis-ID (Zeichenfolge) für den Beitragstyp. Die ID jedes Beitragstyps muss innerhalb einer Erweiterung eindeutig sein. Weitere Informationen finden Sie unter Verweisen auf Beiträge und Typen.
  • name : Der Anzeigename des Beitragstyps.
  • description – (Optional) Eine Zeichenfolge, die genauer beschreibt, für welchen Beitragstyp es sich handelt.
  • Eigenschaften : (Optional) Ein Wörterbuch, das Eigenschaftennamen Eigenschaftenbeschreibungen zuordnet. Diese Eigenschaften beschreiben die erforderlichen und optionalen Eigenschaften, die von Beiträge dieses Typs verwendet werden können.

Eigenschaftenbeschreibungen weisen die folgenden Eigenschaften auf:

  • description : (Optional) Eine Zeichenfolge, die beschreibt, wofür die Eigenschaft verwendet wird.
  • required – (Optional) Ein boolescher Wert, der bei true angibt, dass die Eigenschaft für alle Beiträge dieses Typs erforderlich ist.
  • type : Der Typ des Werts, den die Eigenschaft haben kann. Dies kann Zeichenfolge, URI, guid, boolean, integer, double, dateTime, Array oder Objekt sein.

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

Verweisen auf Beiträge und Typen

Beiträge und Beitragstypen werden durch ihre Bezeichner referenziert. Beiträge verweisen auf Typen über die type -Eigenschaft und verweisen über die targets -Eigenschaft auf andere Beiträge.

  • Eine vollständige Beitragsreferenz umfasst den Herausgeberbezeichner, erweiterungsbezeichner und Beitrags-/Typbezeichner, getrennt durch einen Punkt (.). Beispielsweise ms.vss-web.hub ist der vollständige Bezeichner für den Beitrag mit dem Bezeichner "hub" in der Erweiterung "vss-web", die vom Herausgeber "ms" (Microsoft) veröffentlicht wird.
  • Relative Beitragsreferenzen können innerhalb eines Erweiterungsmanifests für den Verweis eines Beitrags auf einen anderen Beitrags- oder Beitragstyp innerhalb derselben Erweiterung verwendet werden. In diesem Fall sind die Herausgeber- und Erweiterungsbezeichner NICHT enthalten, und der Bezeichner ist ein Punkt (.) gefolgt vom Beitragsbezeichner. Beispielsweise kann ".hub" in der Erweiterung "vss-web" verwendet werden, die zuvor als Verknüpfung für "ms.vss-web.hub" erwähnt wurde.

Targeting Beiträge

Einige Beiträge als Container fungieren, die von anderen Beiträge als Ziel verwendet werden können.

  • Hub-Beiträge können auf Hubgruppen abzielen. Wenn eine Seite gerendert wird, werden auf der Webbenutzeroberfläche alle Hub-Beiträge angezeigt, die auf die ausgewählte Hubgruppe abzielen. Hubgruppen zielen auf eine Hubgruppensammlung ab, die eine Gruppe von Hubgruppen definiert, die in einem bestimmten Navigationsbereich angezeigt werden, z. B. Administratorseiten auf Projektebene.
  • Menüs können durch Beiträge unterschiedlicher Typen ausgerichtet werden: action, hyperlink-action und action-provider. Aktionen und Hyperlinkaktionen stellen einzelne Menüelementeinträge bereit. Ein Aktionsanbieter kann mehrere dynamische Menüelemente bereitstellen. Für ein bestimmtes Menü werden Elemente für alle Beiträge (von einem 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 Badgedienste

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".

Wenn Sie ein Badge eines anderen Diensts anzeigen möchten, wenden Sie sich an vsmarketplace@microsoft.com.

Beispielmanifest

Die folgende Erweiterung trägt eine Aktion zum Kontextmenü abgeschlossener Builds und einen Hub zur Buildhubgruppe 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"
            }
        }
    ]
}