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 Artifacts ermöglicht Entwicklern die effiziente Verwaltung aller Abhängigkeiten aus einem einzigen Feed. Feeds in Azure Artifacts dienen als Organisationsrepositorys zum Speichern, Verwalten und Freigeben von Paketen, unabhängig davon, ob innerhalb eines Teams, in allen Organisationen oder öffentlich im Internet. Azure Artifacts unterstützt eine vielzahl von Pakettypen, einschließlich NuGet, npm, Python, Maven, Cargo und Universal Packages.
Dieser Artikel führt Sie durch die Veröffentlichung Ihres ersten NuGet-Pakets in einem Azure Artifacts-Feed. Optional können Sie die Anweisungen befolgen, um GitHub Copilot zu verwenden, um Ihr Projekt einzurichten und Ihr Paket für die Veröffentlichung vorzubereiten.
Voraussetzungen
| Produkt | Anforderungen |
|---|---|
| Azure DevOps | - Eine Azure DevOps Organisation. - Ein Azure DevOps Projekt. – Laden Sie das .NET SDK Version 9.0.200 oder höher herunter, und installieren Sie es. |
| GitHub Copilot (Optional) | - Einrichten von GitHub Copilot und Visual Studio Code. Eine kostenlose 30-tägige GitHub Copilot-Testversion ist verfügbar, wenn Sie sich noch nicht registriert haben. |
Einen Feed erstellen
Wenn Sie bereits über einen Feed verfügen, können Sie diesen Abschnitt überspringen. Führen Sie andernfalls die folgenden Schritte aus, um einen neuen Feed in Azure Artifacts zu erstellen:
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte und dann Ihren Feed erstellen aus.
Geben Sie einen beschreibenden Namen für Ihren Feed an, und legen Sie dessen Sichtbarkeit fest, um zu definieren, wer Pakete in Ihrem Feed anzeigen kann. Definieren Sie den Bereich Ihres Feeds, und aktivieren Sie das Kontrollkästchen "Upstreamquellen ", wenn Sie Pakete aus öffentlichen Quellen einschließen möchten.
Wählen Sie Erstellen, wenn Sie fertig sind.
Melden Sie sich bei Ihrer Azure DevOps-Sammlung an, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte und dann Ihren Feed erstellen aus.
Geben Sie einen beschreibenden Namen für Ihren Feed an, und legen Sie dessen Sichtbarkeit fest, um zu definieren, wer Pakete in Ihrem Feed anzeigen kann. Definieren Sie den Bereich Ihres Feeds, und aktivieren Sie das Kontrollkästchen "Upstreamquellen ", wenn Sie Pakete aus öffentlichen Quellen einschließen möchten.
Wählen Sie Erstellen, wenn Sie fertig sind.
Vorbereiten des Pakets
In diesem Beispiel verwenden Sie eine .NET Core-Klassenbibliothek und richten Ihre Paketmetadaten ein, bevor Sie das Projekt erstellen und ein NuGet-Paket erstellen, das für die Veröffentlichung in Ihrem Feed bereit ist. Wenn Sie noch kein Projekt haben, folgen Sie den Anweisungen in diesem Leitfaden zum Erstellen einer .NET-Klassenbibliothek mit Visual Studio Code.
Öffnen Sie Ihr Projekt in Visual Studio Code, und wählen Sie dann ihre csproj-Datei aus. Fügen Sie Die Paketmetadaten innerhalb des
<PropertyGroup>Tags hinzu. Ihre Datei sollte wie folgt aussehen:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <RootNamespace>demo_class_library</RootNamespace> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> <PackageId>YOUR_PACKAGE_NAME</PackageId> <Version>YOUR_PACKAGE_VERSION</Version> <Authors>YOUR_NAME</Authors> <Company>YOUR_COMPANY</Company> </PropertyGroup> </Project>Führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus, um Ihr Projekt zu erstellen und ein nupkg-Paket zu erstellen. Ihr Paket befindet sich im
bin\releaseOrdner.dotnet pack
Richten Sie den Anmeldeinformationsanbieter für Azure Artifacts ein
Um sich für Ihren Feed zu authentifizieren, müssen Sie zunächst den Azure Artifacts-Anmeldeinformationsanbieter installieren. Mithilfe des in dotnet enthaltenen Toolinstallationsprogramms können Sie den Anmeldeinformationsanbieter über die CLI mit dem folgenden Befehl installieren:
dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool
Wenn Ihre Repositoryebene nuget.config so konfiguriert ist, dass nur Azure Artifacts Quellen verwendet werden, führen Sie den Installationsbefehl außerhalb dieses Verzeichnisses aus, oder legen Sie explizit nuget.org als Quelle fest:
dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --source https://api.nuget.org/v3/index.json
Optional können Sie das Tool auf eine Hauptversion festlegen (z. B. in Container-Images, bei denen die Reproduzierbarkeit wichtig ist):
dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --version 2.* --source https://api.nuget.org/v3/index.json
Erste Verwendung
Wenn Sie zum ersten Mal einen Vorgang ausführen, der eine Authentifizierung erfordert, verwenden Sie einen der folgenden Ansätze:
- Führen Sie den Befehl mit
--interactiveaus, damitdotnetSie zur Anmeldung auffordern kann. Dies ist der empfohlene Ansatz für die meisten lokalen Entwicklungsszenarien.
Bevor Sie einen interaktiven Befehl ausführen, stellen Sie sicher, dass Ihr Projekt eingerichtet ist und Ihr Feed zu nuget.confighinzugefügt wird. Details zum Einrichten finden Sie unter Projektsetup.
Nachdem Ihr Projekt eingerichtet und mit Ihrem Feed verbunden ist, navigieren Sie zu Ihrem Projektverzeichnis, und führen Sie Folgendes aus:
dotnet restore --interactive
Dieser Befehl meldet Sie an und erwirbt ein Sitzungstoken. Nach erfolgreicher Anmeldung können Sie authentifizierte Befehle ohne --interactive ausführen, solange das zwischengespeicherte Sitzungstoken gültig ist. Weitere Informationen finden Sie unter Session-Tokencachespeicherorte.
- Für nicht interaktive Szenarien, z. B. Docker-Container und benutzerdefinierte Automatisierung, stellen Sie Anmeldeinformationen über Umweltvariablen bereit.
Verwenden Sie für Azure Pipelines die Aufgabe NuGetAuthenticate@1, um sich bei Ihrem Feed zu authentifizieren, bevor Sie Befehle wie dotnet restore oder dotnet nuget push ausführen. Weitere Informationen finden Sie unter Restore NuGet-Pakete mit Azure Pipelines.
Verbinden mit einem Feed
Führen Sie die folgenden Schritte aus, um Ihr Projekt einzurichten und eine Verbindung mit Ihrem Azure Artifacts-Feed herzustellen. Stellen Sie sicher, dass Sie den Azure Artifacts-Anmeldeinformationsanbieter und die neueste Version von NuGet installiert haben, wie in den Voraussetzungen beschrieben.
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte und dann Ihren Feed aus dem Dropdownmenü aus.
Wählen Sie Verbinden mit Feedund dann dotnet aus dem Abschnitt NuGet .
Befolgen Sie die Anweisungen im Project-Setup , um Ihre Datei "nuget.config " einzurichten. Die Struktur Ihrer Datei sollte einer der folgenden Elemente ähneln:
Projektbezogener Feed:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <clear /> <add key="<FEED_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" /> </packageSources> </configuration>Organisationsspezifischer Feed:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <clear /> <add key="<FEED_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" /> </packageSources> </configuration>
Melden Sie sich bei Ihrer Azure DevOps-Sammlung an, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte und dann Ihren Feed im Dropdownmenü aus.
Wählen Sie Mit Feed verbinden und dann dotnet im linken Navigationsbereich aus.
Befolgen Sie die Anweisungen im Abschnitt "Project-Setup ", um Ihre nuget.config Datei einzurichten.
Veröffentlichen Ihres Pakets
Führen Sie den folgenden Befehl aus Ihrem Projektverzeichnis aus, um das Paket in Ihrem Azure Artifacts-Feed zu veröffentlichen. Der --api-key Parameter ist erforderlich, Sie können jedoch bei der Veröffentlichung in Azure Artifacts einen beliebigen Zeichenfolgenwert verwenden.
dotnet nuget push --source <FEED_NAME> --api-key <ANY_STRING> <PACKAGE_PATH>