Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Erweiterungen fügen Azure DevOps Funktionen über Beiträge und Beitragstypen hinzu, die im Erweiterungsmanifest deklariert sind. Ein Beitragstyp definiert einen Vertrag – die Eigenschaften und das Verhalten, die Beiträge dieses Typs implementieren müssen. Ein Beitrag ist eine konkrete Instanz eines Beitragstyps (z. B. ein Hub oder eine Build-Aufgabe).
Tipp
Wenn Sie eine neue Azure DevOps-Erweiterung starten, probieren Sie diese verwalteten Beispielsammlungen zuerst aus – sie arbeiten mit aktuellen Produktbuilds und behandeln moderne Szenarien (z. B. Hinzufügen von Registerkarten auf Pullanforderungsseiten).
- Azure DevOps-Erweiterungsbeispiel (GitHub) – ein kompaktes Startbeispiel, das allgemeine Erweiterungsmuster veranschaulicht: https://github.com/microsoft/azure-devops-extension-sample
- Azure DevOps-Erweiterungsbeispiele (Legacysammlungs- und Beitragsleitfaden) – Installieren, um UI-Ziele zu prüfen oder die Quelle anzuzeigen: https://marketplace.visualstudio.com/items/ms-samples.samples-contributions-guide und https://github.com/Microsoft/vso-extension-samples/tree/master/contributions-guide
- Microsoft Learn-Beispiele (Azure DevOps-Beispiele durchsuchen) – kuratierte, aktuelle Beispiele in Dokumenten von Microsoft: /samples/browse/?terms=azure%20devops%20extension
Wenn ein Beispiel in Ihrer Organisation nicht funktioniert, installieren Sie es in einer persönlichen oder Testorganisation und vergleichen Sie die Ziel-IDs und API-Versionen des Erweiterungsmanifests mit den aktuellen Dokumenten. Weitere Informationen und APIs finden Sie unter:
Weitere Informationen finden Sie unter:
Beitragstypen
Ein Beitragstyp definiert die Eigenschaften und Regeln, denen Beiträge dieses Typs entsprechen müssen. Beitragstypen können andere Beitragstypen erweitern und ihre Eigenschaften erben.
Zu den gängigen integrierten Beitragstypen gehören:
-
ms.vss-web.hub— eine Seite in der Web-UI -
ms.vss-web.action— eine Menüaktion -
ms.vss-distributed-task.task— eine Build-/Release-Aufgabe
Jede Eigenschaftsdefinition in einem Beitragstyp gibt Folgendes an:
-
type — der Datentyp (zum Beispiel
string,boolean,integer) - erforderlich – ob die Eigenschaft bereitgestellt werden muss
- default – ein optionaler Standardwert
Beispiel für den Beitragstyp
Eine Beitragstypdeklaration in einem Manifest sieht wie folgt aus:
{
"contributionTypes": [
{
"id": "hub",
"name": "Web Access Hub",
"description": "A hub that appears in the hubs menu at the top of web pages.",
"properties": {
"name": {
"description": "The text to display for the hub",
"type": "string",
"required": true
},
"uri": {
"description": "URI of the contents of the hub page",
"type": "string",
"required": true
},
"order": {
"description": "Optional ordering value indicating the hub's position within the hub group",
"type": "integer"
}
}
}
]
}
Beiträge
Ein Beitrag ist eine Instanz eines Beitragstyps. Beispielsweise ist der Queries Hub unter der Arbeits-Hub-Gruppe ein Beitrag vom Typ ms.vss-web.hub, und die Publish Test Results Build-Aufgabe ist ein Beitrag vom Typ ms.vss-distributed-task.task.
Jeder Beitrag muss einen Typ angeben und Werte für alle eigenschaften bereitstellen, die für diesen Typ erforderlich sind.
Beispiel für Beiträge
Die folgende Deklaration des Hubbeitrags in einem Erweiterungsmanifest fügt einer Build-Hubgruppe einen Hub mit dem Namen "Explorer" hinzu:
{
"contributions": [
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
],
"properties": {
"name": "Explorer",
"uri": "/_build",
"order": 22
}
}
]
}
Zielbeiträge
Ein Beitrag kann auf einen oder mehrere andere Beiträge abzielen , wodurch eine Beziehung zwischen Eltern und Kind entsteht. Das System ermittelt diese Beziehungen zur Laufzeit, um zu bestimmen, was gerendert werden soll. Beispielsweise zielt ein hub Beitrag auf einen hub-group Beitrag ab, damit das System weiß, welche Hubs zu welcher Gruppe gehören.
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
Wenn die Hubgruppe gerendert wird, fragt das System alle Hubbeiträge ab, die darauf abzielen, um zu bestimmen, welche Hubs angezeigt werden sollen.
Bezeichner für Beiträge
Jeder Beitrag und Beitragstyp muss innerhalb der Erweiterung eine eindeutige ID besitzen.
Ein vollqualifizierter Bezeichner weist drei Teile auf, die durch Punkte getrennt sind (.):
| Bauteil | Example |
|---|---|
| Herausgeber-ID | ms |
| Erweiterungs-ID | vss-web |
| Beitrags-/Typ-ID | hub |
Vollständiger Bezeichner: ms.vss-web.hub
Innerhalb desselben Erweiterungsmanifests können Sie relative Verweise verwenden – einen Punkt gefolgt von der Beitrags-ID. Beispielsweise ist .hub eine Abkürzung für ms.vss-web.hub, wenn es innerhalb der Erweiterung vss-web verwendet wird.