NuGet-pakketten herstellen met Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Met NuGet Package Restore kunt u alle afhankelijkheid van uw project installeren zonder deze op te slaan in broncodebeheer. Dit maakt een schonere ontwikkelomgeving en een kleinere opslagplaats mogelijk. U kunt uw NuGet-pakketten herstellen met behulp van de NuGet-hersteltaak, de NuGet CLI of de .NET Core CLI. In dit artikel wordt beschreven hoe u uw NuGet-pakketten kunt herstellen met zowel klassieke als YAML-pijplijnen.
Vereisten
- een Azure DevOps-organisatie. Maak een organisatie als u er nog geen hebt.
- Een Azure DevOps-project. Als u er nog geen hebt, kunt u een nieuw project maken.
- Een Azure Artifacts-feed. Maak een nieuwe feed als u er nog geen hebt.
- Verbinding maken naar Azure Artifacts-feed: NuGet.exe, dotnet.
- Stel uw pijplijnmachtigingen in.
NuGet-pakketten herstellen vanuit een feed
Navigeer naar uw klassieke pijplijndefinitie en selecteer Bewerken.
Selecteer + deze optie om een nieuwe taak toe te voegen. Zoek naar NuGet en selecteer vervolgens Toevoegen om de taak toe te voegen aan uw pijplijn.
Geef uw taak een naam en selecteer Herstellen in de opdracht.
Selecteer Feed(s) die ik hier selecteer en selecteer uw feed in de vervolgkeuzelijst. Als u uw eigen configuratiebestand wilt gebruiken, selecteert u Feeds in mijn NuGet.config en voert u het pad naar uw NuGet.config-bestand en de serviceverbinding in als u wilt verifiëren met feeds buiten uw organisatie.
Als u pakketten uit NuGet.org wilt opnemen, schakelt u het selectievakje Pakketten gebruiken uit NuGet.org in.
Selecteer Opslaan en wachtrij wanneer u klaar bent.
Notitie
Klassieke NuGet-herstelbewerking maakt gebruik van de NuGetCommand@2 taak. Deze versie maakt standaard gebruik van NuGet 4.1.0. Gebruik de taak NuGet Tool Installer als u een andere NuGet-versie wilt gebruiken.
NuGet-pakketten lokaal herstellen
Plaats uw nuget.config
map in dezelfde map als uw .csproj
of .sln
bestand. Uw configuratiebestand moet er ongeveer uitzien als in het volgende voorbeeld:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<!-- remove inherited connection strings -->
<clear />
<!-- add an Azure Artifacts feed -->
<add key="FabrikamFiber" value="https://pkgs.dev.azure.com/microsoftLearnModule/_packaging/FabrikamFiber/nuget/v3/index.json" />
<!-- Get packages from NuGet.org -->
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
Als u uw NuGet-pakketten wilt herstellen, voert u de volgende opdracht uit in uw projectmap:
nuget.exe restore
NuGet-pakketten herstellen vanuit een feed in een andere organisatie
Als u NuGet-pakketten wilt herstellen vanuit een feed in een andere Azure DevOps-organisatie, moet u een persoonlijk toegangstoken gebruiken om te verifiëren.
Een persoonlijk toegangstoken maken
Navigeer naar uw Azure DevOps-organisatie en selecteer vervolgens Persoonlijke toegangstokens voor gebruikersinstellingen>.
Maak een persoonlijk toegangstoken met het bereik Packaging (read) en kopieer uw PAT naar het klembord.
NuGet-pakketten herstellen
Navigeer naar uw pijplijndefinitie en selecteer de NuGet-hersteltaak . Zorg ervoor dat u versie 2 van de taak gebruikt.
Selecteer Feeds en verificatie en selecteer vervolgens Feeds in mijn NuGet.config.
Selecteer het pad van uw NuGet.config-bestand .
Selecteer Nieuw om referenties toe te voegen voor feeds buiten deze organisatie/verzameling.
Selecteer Externe Azure DevOps-server en voer vervolgens uw feed-URL in (zorg ervoor dat deze overeenkomt met wat er in uw NuGet.config staat), de naam van de serviceverbinding en het persoonlijke toegangstoken dat u eerder hebt gemaakt. Kies Opslaan wanneer u klaar bent.
Selecteer Opslaan en wachtrij wanneer u klaar bent.
Veelgestelde vragen
V: Mijn pijplijn kan mijn NuGet-pakketten niet herstellen?
A: De NuGet-hersteltaak kan om verschillende redenen mislukken. Het meest voorkomende scenario is wanneer u een nieuw project toevoegt waarvoor een doelframework is vereist dat niet wordt ondersteund door de NuGet-versie die uw pijplijn gebruikt. Deze fout treedt doorgaans niet op in de lokale ontwikkelomgeving, omdat Visual Studio ervoor zorgt dat uw oplossing dienovereenkomstig wordt bijgewerkt. Zorg ervoor dat u uw NuGet-taak upgradet naar de nieuwste versie.