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 hinzu, indem Sie Beitragstypen und Beitragsinstanzen deklarieren. Ein Beitragstyp definiert einen Vertrag (die Eigenschaften und Verhaltensweisen), den Beiträge dieses Typs implementieren müssen. Ein Beitrag ist eine konkrete Instanz eines Beitragstyps (zum Beispiel 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. Ein Beitragstyp kann einen anderen Beitragstyp erweitern und seine Eigenschaften erben.
Zu den allgemeinen Beitragstypen gehören:
hubactionbuild-task
Jede Eigenschaftsdefinition umfasst:
- Eigenschaftstyp (z. B. Zeichenfolge oder boolescher Wert)
- Ob die Eigenschaft erforderlich ist
- optionaler Standardwert
Example
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 in der Hub-Gruppe 'Arbeit' ein Beitrag vom Typ hub und die Publish Test Results Build-Aufgabe ist ein Beitrag vom Typ build-task.
Alle Beiträge müssen einen Typ angeben und Werte für alle Eigenschaften angeben, die für diesen Beitragstyp erforderlich sind.
Example
Hier ist ein Beispiel für eine Hub-Beitragsdeklaration in einem Erweiterungsmanifest:
{
"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 dem Beitrag und jedem seiner Ziele entsteht. Das System kann Beiträge für das Ziel zur Laufzeit ermitteln. Beispielsweise kann ein hub Beitrag (Explorer) auf einen bestimmten hub-group Beitrag (Build) abzielen.
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
Wenn die Hubgruppe gerendert wird, kann das System alle Hubbeiträge abfragen, die auf die Hubgruppe abzielen, um festzustellen, welche Hubs gerendert werden sollen.
Identifizieren von Beiträgen und Typen
Jeder Beitrags- und Beitragstyp muss eine eindeutige ID innerhalb der Erweiterung aufweisen, in der er deklariert ist.
Ein vollständiger Beitragsbezeichner enthält die folgenden Elemente, die Sie durch einen Punkt . trennen:
- Herausgeber-ID
- Erweiterungs-ID
- Beitrags-/Typ-ID
Beispiel: ms.vss-web.hub ist der vollständige Bezeichner für den folgenden Beitrag:
- Herausgeber-ID:
ms - Erweiterungs-ID:
vss-web - Beitrags-/Typ-ID:
hub
Sie können relative Beitragsverweise innerhalb eines Erweiterungsmanifests nutzen, um den Verweis eines Beitrags auf einen anderen Beitrag oder Beitragstyp innerhalb derselben Erweiterung zu definieren. In diesem Fall sind die Herausgeber- und Erweiterungs-IDs nicht enthalten, und die ID ist ein Punkt . , gefolgt von der Beitrags-ID. Beispielsweise kann .hub innerhalb der zuvor erwähnten vss-web-Erweiterung als Abkürzung für ms.vss-web.hubverwendet werden.