NuGet-pakketten publiceren vanaf de opdrachtregel (dotnet)

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

In deze handleiding wordt uitgelegd hoe u uw project configureert voor het publiceren van NuGet-pakketten met behulp van de dotnet-opdrachtregelinterface.

Voorwaarden

Product vereisten
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-artefacten 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

Eerste gebruik

De eerste keer dat u een bewerking uitvoert waarvoor verificatie is vereist, gebruikt u een van de volgende methoden:

  1. Voer de opdracht uit met --interactive, zodat dotnet u kan vragen om u aan te melden. Dit is de aanbevolen benadering voor de meeste lokale ontwikkelscenario's.

Voordat u een interactieve opdracht uitvoert, moet u ervoor zorgen dat uw project is ingesteld en dat uw feed wordt toegevoegd aan nuget.config. Zie de installatie van het project voor meer informatie over de installatie.

Zodra uw project is ingesteld en verbonden met uw feed, gaat u naar de projectmap en voert u het volgende uit:

dotnet restore --interactive

Met deze opdracht meldt u zich aan en verkrijgt u een sessietoken. Nadat u zich hebt aangemeld, kunt u geverifieerde opdrachten uitvoeren zonder --interactive, zolang het sessietoken in de cache geldig blijft. Zie Locaties van de sessietokencache voor meer informatie.

  1. Voor niet-interactieve scenario's, zoals Docker-containers en aangepaste automatisering, geeft u referenties op via omgevingsvariabelen.

Gebruik voor Azure-pipelines de taak NuGetAuthenticate@1 om te verifiëren bij uw feed voordat u opdrachten uitvoert, zoals dotnet restore of dotnet nuget push. Zie Restore NuGet-pakketten met Azure-pipelines voor meer informatie.

Een feed maken

Als u al een feed hebt, gaat u verder met de volgende stap. Volg anders de onderstaande instructies om een nieuwe te maken:

  1. Meld u aan bij uw Azure DevOps en navigeer naar uw project.

  2. Selecteer Artifacts en klik vervolgens op Feed maken.

  3. Voer een beschrijvende naam in voor uw feed en definieer de zichtbaarheid (die uw feed kan gebruiken). Geef het bereik van uw feed op en als u pakketten uit openbare bronnen wilt opnemen, schakelt u het selectievakje Insluitingspakketten uit algemene openbare bronnen in.

  4. Klik op Create wanneer je klaar bent.

Verbinding maken met een feed

Voordat u pakketten naar uw feed kunt publiceren, moet u zich verifiëren met Azure-artefacten. Volg de onderstaande instructies om uw project in te stellen en te verifiëren met uw feed:

  1. Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.

  2. Selecteer Artifactsen selecteer vervolgens uw feed in het dropdownmenu.

  3. Selecteer Verbinding maken met feeden selecteer vervolgens dotnet- in de sectie NuGet aan de linkerkant.

  4. Maak een -nuget.config--bestand in dezelfde map als uw -csproj-- of -sln--bestand. Kopieer het volgende XML-fragment en plak het in het nieuwe bestand, waarbij u de tijdelijke aanduidingen vervangt door de relevante informatie:

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

  2. Selecteer Artefactenen selecteer vervolgens uw feed.

  3. Selecteer Verbinding maken met feeden selecteer vervolgens dotnet- in het linkernavigatiedeelvenster.

  4. Volg de instructies in het gedeelte Project installatie om verbinding te maken met uw feed.

    Een schermopname waarin wordt getoond hoe u verbinding maakt met een feed met dotnet in Azure DevOps Server 2020 en 2022.

Pakketten publiceren naar een feed in dezelfde organisatie

Voer de volgende opdracht uit om een pakket naar uw feed te publiceren. Vervang de tijdelijke aanduidingen door de juiste waarden:

dotnet nuget push --source https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json --api-key <ANY_STRING> <PACKAGE_PATH> 

voorbeeld van:

dotnet nuget push --source https://pkgs.dev.azure.com/MyOrg/MyProject/_packaging/MyFeed/nuget/v3/index.json --api-key AZ bin/MyPackage.5.0.2.nupkg

Notitie

De api-key parameter is vereist bij het publiceren naar een Azure-artefacten-feed, maar u kunt elke tekenreeks als waarde gebruiken.

Pakketten publiceren naar een feed in een andere organisatie

Als u uw NuGet-pakketten wilt publiceren naar een feed in een andere Azure DevOps-organisatie, moet u eerst een persoonlijk toegangstoken (PAT) maken in de doelorganisatie, de nieuwe pakketbron toevoegen aan uw configuratiebestand en vervolgens de publicatieopdracht uitvoeren:

  1. Navigeer naar de organisatie die als host fungeert voor de doelfeed en maak een persoonlijk toegangstoken (PAT) met Packaging>Read & write scope.

  2. Vervang de tijdelijke aanduiding <PERSONAL_ACCESS_TOKEN> door uw persoonlijke toegangstoken en voer vervolgens de volgende opdracht uit om de pakketbron toe te voegen aan uw nuget.config bestand. Zorg ervoor dat dit bestand veilig is opgeslagen en niet is ingecheckt bij broncodebeheer.

    dotnet nuget add source https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json --name <SOURCE_NAME> --username <USER_NAME> --password <PERSONAL_ACCESS_TOKEN> --configfile <PATH_TO_NUGET_CONFIG_FILE>
    
  3. Voer de volgende opdracht uit om uw pakket te publiceren:

    dotnet nuget push --source <SOURCE_NAME> --api-key <ANY_STRING> <PACKAGE_PATH>
    

voorbeeld van:

dotnet nuget add source https://pkgs.dev.azure.com/MyOrg/MyProject/_packaging/MyFeed/nuget/v3/index.json --name MySource --username MyUserName --password MyPersonalAccessToken --configfile ./nuget.config

dotnet nuget push --source MySource --api-key AZ nupkgs/mypackage.1.1.0.nupkg

Notitie

Als uw organisatie een firewall of proxyserver gebruikt, moet u ervoor zorgen dat de URL's en IP-adressen van het Azure-artefacten-domein zijn toegestaan.