Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Den här guiden beskriver hur du konfigurerar projektet för att publicera NuGet-paket med hjälp av dotnet-kommandoradsgränssnittet.
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 Artifacts 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 användningen
Använd någon av följande metoder första gången du utför en åtgärd som kräver autentisering:
- Kör kommandot med
--interactiveså attdotnetkan uppmana dig att logga in. Detta är den rekommenderade metoden för de flesta lokala utvecklingsscenarier.
Innan du kör ett interaktivt kommando kontrollerar du att projektet har konfigurerats och att feeden har lagts till inuget.config. Information om installation finns i projektkonfiguration.
När projektet har konfigurerats och anslutits till feeden går du till projektkatalogen och kör:
dotnet restore --interactive
Det här kommandot loggar in dig och hämtar en sessionstoken. När du har loggat in kan du köra autentiserade kommandon utan --interactive, så länge den cachelagrade sessionstoken är giltig. Mer information finns i Cacheplatser för sessionstoken.
- För icke-interaktiva scenarier, till exempel Docker-containrar och anpassad automatisering, anger du autentiseringsuppgifter via miljövariabler.
För Azure-pipelines använder du uppgiften NuGetAuthenticate@1 för att autentisera till feeden innan du kör kommandon som dotnet restore eller dotnet nuget push. Mer information finns i Restore NuGet-paket med Azure-pipelines.
Skapa en feed
Om du redan har en feed går du vidare till nästa steg. Annars följer du anvisningarna nedan för att skapa en ny:
Logga in på Azure DevOps och gå till projektet.
Välj Artefakter och välj sedan Skapa flöde.
Ange ett beskrivande namn för feeden och definiera dess synlighet (vem som kan använda feeden). Ange omfånget för flödet och om du vill inkludera paket från offentliga källor markerar du kryssrutan Inkludera paket från vanliga offentliga källor .
Välj Skapa när du är klar.
Anslut till en feed
Innan du kan publicera paket i feeden måste du autentisera med Azure Artifacts. Följ anvisningarna nedan för att konfigurera projektet och autentisera med feeden:
Logga in på din Azure DevOps-organisation och navigera sedan till projektet.
Välj Artefakteroch välj sedan din feed från rullgardinsmenyn.
Välj Anslut till flödeoch välj sedan dotnet i avsnittet NuGet till vänster.
Skapa en nuget.config fil i samma mapp som din csproj- eller sln fil. Kopiera följande XML-kodfragment och klistra in det i den nya filen och ersätt platshållarna med relevant information:
<?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>
Publicera paket till en feed i samma organisation
Kör följande kommando för att publicera ett paket i feeden. Ersätt platshållarna med lämpliga värden:
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>
Exempel:
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
Obs
Parametern api-key krävs när du publicerar till en Azure Artifacts-feed, men du kan använda valfri sträng som dess värde.
Publicera paket till en feed i en annan organisation
Om du vill publicera dina NuGet-paket i en feed i en annan Azure DevOps-organisation måste du först skapa en personlig åtkomsttoken (PAT) i målorganisationen, lägga till den nya paketkällan i konfigurationsfilen och sedan köra publiceringskommandot:
Gå till den organisation som är värd för målflödet och skapa en personlig åtkomsttoken (PAT) med Packaging>Läs- och skrivåtkomst räckvidd.
Ersätt platshållaren <PERSONAL_ACCESS_TOKEN> med din personliga åtkomsttoken och kör sedan följande kommando för att lägga till paketkällan i nuget.config-filen. Kontrollera att den här filen lagras på ett säkert sätt och inte är incheckad i källkontrollen.
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>Kör följande kommando för att publicera paketet:
dotnet nuget push --source <SOURCE_NAME> --api-key <ANY_STRING> <PACKAGE_PATH>
Exempel:
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
Obs
Om din organisation använder en brandvägg eller proxyserver kontrollerar du att URL:er och IP-adresser för Azure Artifacts-domäner tillåts.