Ansluta till en Azure Artifacts-feed (dotnet)

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

Med Azure Artifacts kan utvecklare sömlöst publicera paket till feeds och dela dem privat eller offentligt, beroende på flödets synlighetsinställningar. Den här guiden beskriver hur du konfigurerar projektet och autentiserar med ditt Azure Artifacts-flöde.

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 .NET SDK version 9.0.200 eller senare.

Konfigurera providern för Azure Artifacts-autentiseringsuppgifter

Om du vill autentisera med feeden måste du först installera providern Azure Credential. Med hjälp av installationsprogrammet för verktyget som ingår i dotnet kan du installera providern för autentiseringsuppgifter från CLI med hjälp av följande kommando:

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool

Om nuget.config har konfigurerats för att endast använda Azure Artifacts källor kör du installationskommandot utanför katalogen eller anger uttryckligen nuget.org som källa:

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --source https://api.nuget.org/v3/index.json

Alternativt kan du låsa verktyget till en huvudversion (till exempel i containeravbildningar där reproducerbarhet är viktigt):

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --version 2.* --source https://api.nuget.org/v3/index.json

Första gången du utför en åtgärd som kräver autentisering bör du autentisera genom att antingen:

  • Kör med --interactive så att dotnet kan be dig att autentisera dig.
  • Ange autentiseringsuppgifter via miljövariabler (till exempel i obevakade scenarier).

Om interaktiv auktorisering är tillgänglig går du till projektkatalogen och kör:

dotnet restore --interactive

Det här kommandot loggar in dig och hämtar en token. När inloggningen har lyckats kan du köra autentiserade kommandon utan --interactive tills tokenen upphör att gälla. Se platser för cachelagring av sessionstoken för mer information.

Ansluta till ett flöde

  1. Välj Artefakter och välj sedan din feed från rullgardinsmenyn.

  2. Välj Anslut till flöde, och välj sedan dotnet från avsnittet NuGet.

  3. Lägg till en nuget.config fil i projektet. Placera den i samma mapp som din .csproj - eller .sln-fil och klistra in kodfragmentet som anges i avsnittet Projektkonfiguration i den. Filen nuget.config bör se ut ungefär så här:

    • Projektomfattning Flöde:

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

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

  2. Välj Artefakter, och välj sedan din feed från rullgardinsmenyn.

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

  4. Lägg till en nuget.config fil i projektet. Placera den i samma mapp som din .csproj - eller .sln-fil och klistra in kodfragmentet som anges i avsnittet Projektkonfiguration i den.

    En skärmbild som visar hur du ansluter till en feed i Azure DevOps Server 2020 och 2022.

Autentisera med tjänstens huvudnamn

Du kan använda tjänstens huvudnamn för att autentisera med din Azure Artifacts-feed. Det gör du genom att ange miljövariabeln ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS enligt nedan.

Den här variabeln ska definiera feed-URL:en, tjänstens huvudnamns program -ID (klient) och antingen certifikatets ämnesnamn eller sökvägen till certifikatfilen (endast en av dessa två krävs).

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