Herstellen einer Verbindung mit einem Azure Artifacts-Feed (NuGet.exe)

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

Mit Azure Artifacts können Entwickler NuGet-Pakete aus verschiedenen Quellen herunterladen, z. B. private Feeds und öffentliche Registrierungen. Sie können Pakete in privaten Feeds veröffentlichen und den Zugriff steuern oder öffentliche Feeds erstellen, um sie offen freizugeben. Dieser Artikel führt Sie durch die Authentifizierung mit Ihrem Azure Artifacts-Feed.

Voraussetzungen

Produkt Anforderungen
Azure DevOps - Eine Azure DevOps Organisation.
- Ein Azure DevOps Projekt.
- Ein Azure Artifacts-Feed.
– Herunterladen und Installieren nuget.exe Version 4.8.0.5385 oder höher. Wir empfehlen NuGet 5.5.x oder höher, das wichtige Fehlerbehebungen für Abbrüche und Timeouts enthält.

Richten Sie den Anmeldeinformationsanbieter für Azure Artifacts ein

Der Azure Artifacts-Anmeldeinformationsanbieter ermöglicht die sichere Authentifizierung bei Ihren Azure Artifacts-Feeds. Um es mit nuget.exezu verwenden, müssen Sie es zuerst zum Plug-In-Suchpfad von NuGet hinzufügen. Ausführliche Informationen finden Sie unter Plug-In-Installation und Ermittlung. Nachdem das Plug-In hinzugefügt wurde, führen Sie die Installationsschritte für Ihr Betriebssystem unten aus:

Verwenden Sie eine der folgenden Methoden, um den Anmeldeinformationsanbieter für Azure Artifacts zu installieren:

Manuelle Installation

  1. Laden Sie die neueste version Microsoft.NetFx48.NuGet.CredentialProvider.zip herunter.

  2. Extrahieren Sie die ZIP-Datei.

  3. Kopieren Sie den netfx Ordner aus dem extrahierten Archiv in %UserProfile%/.nuget/plugins/. Der netfx Ordner ist für nuget.exe Kompatibilität erforderlich.

Installieren mit dem Hilfsskript

Alternativ können Sie das automatisierte Hilfsskript für eine optimierte Installation verwenden. Stellen Sie sicher, dass Sie über PowerShell 5.1 oder höher verfügen, und führen Sie dann Folgendes aus:

iex "& { $(irm https://aka.ms/install-artifacts-credprovider.ps1) } -AddNetfx"

Weitere Informationen finden Sie im Repository Azure Artifacts Credential Provider.

Projektkonfiguration

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation 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" aus, und wählen Sie dann NuGet.exe von links aus.

  4. Fügen Sie Ihrem Projekt eine nuget.config Datei hinzu, platzieren Sie sie in demselben Ordner wie Ihre csproj oder sln Datei, und fügen Sie dann den bereitgestellten Codeausschnitt in die Datei ein. Ihre nuget.config Datei sollte wie folgt aussehen:

    • Projektbezogener Feed:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<SOURCE_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="<SOURCE_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 Verbinden mit Feed, und wählen Sie dann NuGet.exe aus dem linken Navigationsbereich.

  4. Fügen Sie ihrem Projekt eine nuget.config Datei hinzu, platzieren Sie sie in demselben Ordner wie ihre csproj - oder sln-Datei , und fügen Sie dann den im Project-Setupabschnitt bereitgestellten Codeausschnitt in die Datei ein.

Hinweis

Der Azure Artifacts-Anmeldeinformationsanbieter erfordert NuGet-Version 4.8.0.5385 oder höher. Für eine optimale Leistung empfiehlt Azure Artifacts die Verwendung der NuGet-Version 5.5.x oder höher, da es wichtige Fehlerbehebungen im Zusammenhang mit Abbrüchen und Timeouts enthält.

Einrichtung von Legacy-Projekten

Wenn Sie eine ältere Version von NuGet verwenden, folgen Sie den nachstehenden Anweisungen, um eine Verbindung mit Ihrem Feed herzustellen:

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.

  2. Wählen Sie Artefakte und wählen Sie dann Ihren Feed aus dem Dropdown-Menü.

  3. Wählen Sie "Mit Feed verbinden" aus, und wählen Sie dann NuGet.exe von links aus.

  4. Kopieren Sie die Quell-URL aus dem Abschnitt "Project-Setup ", und ersetzen Sie /v3/index.json dann durch /v2. Die aktualisierte Quell-URL sollte wie folgt aussehen:

    • Projektbezogener Feed:

      https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v2
      
    • Organisationsspezifischer Feed:

      https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v2
      
  5. Erstellen Sie ein persönliches Zugriffstoken, stellen Sie sicher, dass Sie den Bereich auf die richtige Organisation beschränken, auf die Sie zugreifen möchten, und wählen Sie dann einen der folgenden Bereiche basierend auf Ihren Anforderungen aus: Verpackung (Lesenund Schreiben), Verpacken (Lesen und Schreiben) oder Verpacken (Lesen, Schreiben und Verwalten).

  6. Führen Sie den folgenden Befehl in einem Eingabeaufforderungsfenster aus, um Ihre Feedquelle zu Ihrer nuget.config Datei hinzuzufügen:

    nuget sources add -name <FEED_NAME> -source <SOURCE_URL> -username <ANY_STRING_BUT_NOT_NULL> -password <YOUR_PERSONAL_ACCESS_TOKEN>
    
  7. Wenn Ihre Organisation mit der Microsoft Entra-ID verbunden ist, müssen Sie sich zuerst mit Ihren AD-Anmeldeinformationen authentifizieren und dann Ihr persönliches Zugriffstoken mithilfe des Setapikey-Befehls hinzufügen:

    nuget sources add -name <FEED_NAME> -source <SOURCE_URL> -username <AZURE_ACTIVE_DIRECTORY_USERNAME> -password <AZURE_ACTIVE_DIRECTORY_PASSWORD>
    
    nuget setapikey <YOUR_PERSONAL_ACCESS_TOKEN> -source <SOURCE_URL> 
    

Authentifizierung mit Dienstprinzipalen

Um sich mit einem Azure Artifacts Feed über ein Dienstprinzipal zu authentifizieren, legen Sie die ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS Umgebungsvariable wie unten gezeigt fest.

Dies gibt Ihre Feed-URL, die Anwendungs-ID (Client-ID) des Dienstprinzipals und entweder den Betreffnamen oder den Dateipfad des Dienstprinzipalzertifikats an (es ist nur einer von beiden 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>"
        }
    ]
}
'@