Honestly, VSTS private NuGet feeds will be a most blogged topic in this blog! I’ve already mentioned them at least twice. Here goes another post:
This time I’m building in VSTS Core application and the build literally goes:
- dotnet restore
- dotnet build
- dotnet test
- dotnet publish
And this worked really well for the basic application – I had it set up in minutes and got the resuilt I was looking for.
But during the life of the application I needed NuGet packages from my private feed and
dotnet restore had no idea about my private feeds.
Even if supplied with
nuget.config file I was getting
401 Unauthenticated – this is because I was not keeping my password(token) in this file.
Solution was to add this feed globally on the agent for every build. And this turned out to be easier than I thought.
In your build add a new task called
When you configure this task give
sources as Command parameter. And for arguments put this:
add -Name MyFeedName -Source https://MyProject.pkgs.visualstudio.com/_packaging/MyFeedName/nuget/v3/index.json -username myUsername@MyTeamName.onmicrosoft.com -password $(System.AccessToken)
My build task looks like this:
Replace the names accordingly. This adds a NuGet source to the agent. This
$(System.AccessToken) is getting build variable that contains an access token – it is generated for every build you run, so no need to keep it around in your build script or
To make the token available you need change the toggle in build Options: Change
Allow scripts to access OAuth Token to
This way when you run
dotnet restore your private feed will be available and it will use OAuth token that authenticates with the private package feed.