Ansluta till Azure Artifacts feeds med hjälp av NuGet.exe

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

Azure Artifacts hjälper dig att lagra och hantera dina paket från en enda feed. Du kan dela paket inom ditt team, mellan organisationer eller, för befintliga offentliga projekt, offentligt. Den här artikeln visar hur du konfigurerar projektet och autentiserar till din Azure Artifacts feed med hjälp av NuGet.exe.

Förutsättningar

Produkt Krav
Azure DevOps – En organisation i Azure DevOps .
– Ett Azure DevOps-projekt.
– Ett Azure Artifacts-flöde.
– Ladda ned och installera nuget.exe version 4.8.0.5385 eller senare. Vi rekommenderar NuGet 5.5.x eller senare, vilket inkluderar viktiga felkorrigeringar för annulleringar och tidsgränser.

Konfigurera providern för Azure Artifacts-autentiseringsuppgifter

Azure Artifacts-providern för autentiseringsuppgifter möjliggör säker autentisering till dina Azure Artifacts feeds. Om du vill använda den med nuget.exemåste du först lägga till den i NuGets sökväg för plugin-program. Mer information finns i Installation och identifiering av plugin-program. När plugin-programmet har lagts till följer du installationsstegen för operativsystemet nedan:

Använd någon av följande metoder för att installera Azure Artifacts-providern för autentiseringsuppgifter:

Manuell installation

  1. Ladda ned den senaste versionen av Microsoft.NetFx48.NuGet.CredentialProvider.zip.

  2. Extrahera zip-filen.

  3. netfx Kopiera mappen från det extraherade arkivet till %UserProfile%/.nuget/plugins/. Mappen netfx krävs för nuget.exe kompatibilitet.

Installera med hjälpskriptet

Du kan också använda hjälpskriptet för att automatisera installationen. Kontrollera att du har PowerShell 5.1 eller senare och kör sedan:

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

Mer information finns i lagringsplatsen Azure Artifacts Credential Provider.

Projektinställningar

Följ de här stegen för att konfigurera projektet och lägga till din feed i din nuget.config-fil så att NuGet vet var paketen ska återställas och publiceras. Vilken feed-URL du använder beror på om ditt flöde är begränsat till ett projekt eller organisationen.

  1. Logga in på din Azure DevOps-organisation och navigera sedan till projektet.

  2. Välj Artefakter och välj sedan din feed från den nedrullningsbara menyn.

  3. Välj Anslut för att mataoch välj sedan NuGet.exe i det vänstra navigeringsfönstret.

  4. Lägg till en nuget.config fil i projektet i samma mapp som din .csproj eller .sln filen och klistra sedan in det angivna kodfragmentet i den. Filen nuget.config bör likna något av följande exempel:

    • Projektspecifikt flöde:

      <?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>
      
    • Organisationsomfattande flöde:

      <?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. Logga in på din Azure DevOps-samling och navigera sedan till projektet.

  2. Välj Artefakter och välj sedan din feed från den nedrullningsbara menyn.

  3. Välj Anslut till feedoch välj sedan NuGet.exe i det vänstra navigeringsfönstret.

  4. Lägg till en nuget.config fil i project i samma mapp som din .csproj eller .sln filen och klistra sedan in kodfragmentet i avsnittet Project installation i filen.

Anmärkning

Azure Artifacts-providern för autentiseringsuppgifter kräver NuGet-version 4.8.0.5385 eller senare. Azure Artifacts rekommenderar NuGet 5.5.x eller senare för bästa kompatibilitet och tillförlitlighet.

Äldre projektkonfiguration

Om du använder en äldre version av NuGet som inte stöder det rekommenderade v3-flödet kan du fortfarande ansluta till ditt flöde med hjälp av den äldre v2-slutpunkten och en personlig åtkomsttoken (PAT). Använd endast den här metoden när du inte kan flytta till en nyare klient.

  1. Logga in på din Azure DevOps-organisation och navigera sedan till projektet.

  2. Välj Artefakter och välj sedan din feed från den nedrullningsbara menyn.

  3. Välj Anslut till feed och välj sedan NuGet.exe till vänster.

  4. Kopiera käll-URL:en från avsnittet Projektkonfiguration och ersätt /v3/index.json sedan med /v2. Den uppdaterade käll-URL:en bör se ut ungefär så här:

    • Projektspecifikt flöde:

      https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v2
      
    • Organisationsomfattande flöde:

      https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v2
      
  5. Skapa en personlig åtkomsttoken. Begränsa token till den organisation som du vill komma åt och välj sedan något av följande omfång baserat på dina behov: Paketering (läs), Paketering (läsning och skrivning)eller Paketering (läsa, skriva och hantera).

  6. Kör följande kommando i ett kommandotolksfönster för att lägga till din feedkälla i din nuget.config-fil:

    nuget sources add -name <FEED_NAME> -source <SOURCE_URL> -username <ANY_STRING_BUT_NOT_NULL> -password <YOUR_PERSONAL_ACCESS_TOKEN>
    
  7. Om din organisation är ansluten till Microsoft Entra ID, autentiserar du först med dina Microsoft Entra-autentiseringsuppgifter och lägger sedan till din personliga åtkomsttoken med hjälp av kommandot setapikey:

    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> 
    

Autentisera med hjälp av tjänstens huvudnamn

Använd tjänstens huvudnamnsautentisering för automatiseringsscenarier där interaktiv inloggning inte är lämplig. Om du vill autentisera med en Azure Artifacts feed med hjälp av tjänstens huvudnamn anger du ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS miljövariabeln enligt följande exempel.

Variabeln anger feedens URL, program-ID:t (klient-ID:t) för tjänstens huvudnamn och antingen certifikatets ämnesnamn eller sökvägen till certifikatfilen. Du behöver bara ett av certifikatvärdena.

$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>"
        }
    ]
}
'@