Connect to Azure Artifacts feeds (NuGet.exe)
Azure DevOps Server 2019
Azure Artifacts enables developers to publish and download NuGet packages from various sources, including feeds and public registries. You can use private Azure Artifacts feeds to share packages privately with your team or specific users. Additionally, you can create public feeds to make packages publicly accessible, allowing you to share them openly with anyone on the internet. This article will guide you through connecting to your Azure Artifacts feed.
Prerequisites
An Azure DevOps organization and a project. Create an organization or a project if you haven't already.
An Azure Artifacts feed. Create a new feed if you don't have one already.
Install the latest NuGet version.
Install the Azure Artifacts Credential Provider.
Project setup
Sign in to your Azure DevOps server, and then navigate to your project.
Select Artifacts, and then select your feed.
Select Connect to Feed, and then select NuGet from the left navigation pane.
Follow the provided instructions to add your package source URL to your nuget.config file.
Important
The Azure Artifacts Credential Provider requires NuGet 4.8.0.5385
or higher.
For optimal performance, Azure Artifacts recommends using NuGet version 5.5.x
or later as it includes crucial bug fixes related to cancellations and timeouts.
Authenticate NuGet Feed with Service Principal
To authenticate with a service principal, you must first install the Artifacts Credential Provider.
Set the ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS environment variable as shown below, specifying your feed URL, the service principal's application (client) ID, and the subject name or the file path of your service principal certificate. (Only one is needed between the certificate subject name or file path.)
In PowerShell, enter the following code.
$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>"
}
]
}
'@