NuGet restore fails 404 from feed on another project in same organization.
When using nuget restore
from a pipeline the feed inside a different project is not found.
After searching for a long time, these are the steps necessary to make it work consistently:
Setup permissions
Setup build pipeline
nuget.config file
and make sure to check it in feedsToUse
to 'config'
azure-pipelines.yml
- task: DotNetCoreCLI@2
displayName: DotNetCore-Restore
inputs:
command: 'restore'
projects: '$(PathToSolution)'
feedsToUse: 'config'
nugetConfigPath: '$(PathToNugetConfig)/nuget.config'
includeNuGetOrg: true
nuget.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="feed_name" value="feed_url" />
</packageSources>
</configuration>
There is no need to add an authenticate task to the pipeline as the dotnet command does this by itself... However:
Most dotnet commands, including build, publish, and test include an implicit restore step. This will fail against authenticated feeds, even if you ran a successful dotnet restore in an earlier step, because the earlier step will have cleaned up the credentials it used.
- Source (.NET Core CLI task docs)
You can refer to this doc to setup Azure Artifacts Credential Provider for usage across various tooling.