Verbinding maken met een Azure-artefacten-feed (dotnet)

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

Met Azure-artefacten kunnen ontwikkelaars naadloos pakketten naar feeds publiceren en deze privé of openbaar delen, afhankelijk van de zichtbaarheidsinstellingen van de feed. Deze handleiding helpt u bij het instellen van uw project en het verifiëren met uw Azure-artefacten-feed.

Voorwaarden

Product Eisen
Azure DevOps - Een Azure DevOps organisatie.
- Een Azure DevOps--project.
- Een Azure-artefacten feed.
- Download en installeer de .NET SDK versie 9.0.200 of hoger.

De Azure-artefacten-aanmeldingsgegevensprovider instellen

Als u zich wilt verifiëren met uw feed, moet u eerst de Azure Referentieprovider installeren. Met behulp van het installatieprogramma dat is opgenomen in dotnet, kunt u de referentieprovider installeren vanuit de CLI met behulp van de volgende opdracht:

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

Als uw opslagplaatsniveau nuget.config is geconfigureerd om alleen Azure-artefacten bronnen te gebruiken, voert u de installatieopdracht van buiten die map uit of stelt u expliciet nuget.org in als de bron:

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

Desgewenst kunt u het hulpprogramma vastzetten op een hoofdversie (bijvoorbeeld in containerimages waar reproduceerbaarheid belangrijk is):

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

De eerste keer dat u een bewerking uitvoert waarvoor verificatie is vereist, moet u zich verifiëren door:

  • Wordt uitgevoerd met --interactive, zodat dotnet u kan vragen zich aan te melden.
  • Referenties opgeven via omgevingsvariabelen (bijvoorbeeld in scenario's zonder toezicht).

Als interactieve autorisatie beschikbaar is, gaat u naar uw projectmap en voert u het volgende uit:

dotnet restore --interactive

Met deze opdracht meldt u zich aan en verkrijgt u een token. Nadat u zich hebt aangemeld, kunt u geauthenticeerde opdrachten uitvoeren zonder --interactive totdat het token verloopt. Zie cachelocaties voor sessietokens voor meer informatie.

Verbinding maken met een feed

  1. Selecteer Artefacten en selecteer vervolgens uw feed in de vervolgkeuzelijst.

  2. Selecteer Verbinding maken meten selecteer vervolgens dotnet in de sectie NuGet.

  3. Voeg een nuget.config bestand toe aan uw project. Plaats het in dezelfde map als uw .csproj - of .sln-bestand en plak het fragment in de sectie Projectinstellingen erin. Uw nuget.config bestand moet er ongeveer zo uitzien:

    • Projectgebaseerde 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>
      
    • Feed voor de hele organisatie:

      <?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. Meld u aan bij uw Azure DevOps-verzameling en navigeer vervolgens naar uw project.

  2. Selecteer Artefacten en selecteer vervolgens uw feed in de vervolgkeuzelijst.

  3. Selecteer Verbinding maken met feed en selecteer vervolgens dotnet aan de linkerkant.

  4. Voeg een nuget.config bestand toe aan uw project. Plaats het in dezelfde map als uw .csproj - of .sln-bestand en plak het fragment in de sectie Projectinstellingen erin.

    Een schermafbeelding die laat zien hoe u verbinding maakt met een feed in Azure DevOps Server 2020 en 2022.

Authenticeren met behulp van service-principals

U kunt een service-principal gebruiken om te verifiëren met uw Azure-artefacten-feed. Stel hiervoor de omgevingsvariabele ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS in, zoals hieronder wordt weergegeven.

Deze variabele moet de feed-URL, de toepassings-id (client) van de service-principal en de naam van het certificaatonderwerp of het pad naar het certificaatbestand definiëren (slechts één van deze twee is vereist).

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