Verbinden mit einem Azure Artifacts-Feed (dotnet)

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

Azure Artifacts ermöglicht es Entwicklern, Pakete nahtlos in Feeds zu veröffentlichen und sie privat oder öffentlich zu teilen, je nach den Einstellungen für die Sichtbarkeit des Feeds. Diese Anleitung führt Sie durch das Einrichten Ihres Projekts und die Authentifizierung mit Ihrem Azure Artifacts-Feed.

Voraussetzungen

Produkt Anforderungen
Azure DevOps - Eine Azure DevOps Organisation.
- Ein Azure DevOps Projekt.
- Ein Azure Artifacts-Feed.
– Laden Sie das .NET SDK Version 9.0.200 oder höher herunter, und installieren Sie es.

Richten Sie den Anmeldeinformationsanbieter für Azure Artifacts ein

Zur Authentifizierung bei Ihrem Feed müssen Sie zuerst den Azure Credential Provider 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

Wenn Sie zum ersten Mal einen Vorgang ausführen, der eine Authentifizierung erfordert, sollten Sie sich durch eine der folgenden Aktionen authentifizieren:

  • Ausführung mit --interactive, damit dotnet Sie zur Authentifizierung auffordern kann.
  • Bereitstellen von Anmeldeinformationen über Umgebungsvariablen (z. B. in unbeaufsichtigten Szenarien).

Wenn die interaktive Autorisierung verfügbar ist, navigieren Sie zu Ihrem Projektverzeichnis, und führen Sie Folgendes aus:

dotnet restore --interactive

Dieser Befehl meldet Sie an und erwirbt ein Token. Nach erfolgreicher Anmeldung können Sie authentifizierte Befehle ohne --interactive ausführen, bis das Token abläuft. Weitere Informationen finden Sie unter Session-Tokencachespeicherorte.

Verbindung zu einem Feed herstellen

  1. Wählen Sie Artefakte und dann Ihren Feed aus dem Dropdownmenü aus.

  2. Wählen Sie Verbinden mit Feedund dann dotnet aus dem Abschnitt NuGet .

  3. Fügen Sie eine nuget.config-Datei zu Ihrem Projekt hinzu. Legen Sie sie in denselben Ordner wie Ihre .csproj- oder .sln-Datei und fügen Sie das Snippet aus dem Abschnitt Projekteinrichtung darin ein. Ihre nuget.config-Datei sollte etwa so aussehen wie die folgende:

    • 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>
      
  1. Melden Sie sich bei Ihrer Azure DevOps-Sammlung an, und navigieren Sie dann zu Ihrem Projekt.

  2. Wählen Sie Artefakte und dann Ihren Feed im Dropdownmenü aus.

  3. Wählen Sie Mit Feed verbinden und dann dotnet auf der linken Seite.

  4. Fügen Sie eine nuget.config-Datei zu Ihrem Projekt hinzu. Legen Sie sie in denselben Ordner wie Ihre .csproj- oder .sln-Datei und fügen Sie das Snippet aus dem Abschnitt Projekteinrichtung darin ein.

    Ein Screenshot, der zeigt, wie Sie sich mit einem Feed in Azure DevOps Server 2020 und 2022 verbinden.

Authentifizierung mit Dienstprinzipalen

Sie können ein Dienstprinzipal verwenden, um sich bei Ihrem Azure Artifacts Feed zu authentifizieren. Dazu legen Sie die ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS Umgebungsvariable wie unten gezeigt fest.

Diese Variable sollte die Feed-URL, die Anwendungs-(Client-)ID des Dienstprinzipals und entweder den Zertifikatssubjektnamen oder den Pfad zur Zertifikatsdatei enthalten (nur eines von beiden ist erforderlich).

$env:ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS = @'{
    "endpointCredentials": [
        {
            "endpoint": "<FEED_URL>",
            "clientId": "<SERVICE_PRINCIPAL_APPLICATION_(CLIENT)_ID>",
            "clientCertificateSubjectName": "<SERVICE_PRINCIPAL_CERTIFICATE_NAME>",
            "clientCertificateFilePath": "<SERVICE_PRINCIPAL_CERTIFICATE_PATH>"
        }
    ]
}
'@