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
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
--interactiveså 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
Välj Artefakter och välj sedan din feed från rullgardinsmenyn.
Välj Anslut till flöde, och välj sedan dotnet från avsnittet NuGet.
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>
Logga in på din Azure DevOps-samling och navigera sedan till projektet.
Välj Artefakter, och välj sedan din feed från rullgardinsmenyn.
Välj Anslut till feed och välj sedan dotnet till vänster.
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.
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>"
}
]
}
'@