I receive the following error in NuGet Install build step when setting sources to TeamCity\'s NuGet server:
Step 1/4: NuGet install (NuGet Installer) (3s)
[15:1
We implemented authenticated feed support in TeamCity plugin. Please follow comments to the issue http://youtrack.jetbrains.com/issue/TW-20764
You can specify custom feeds just for solution via nuget.config
file.
The key point is to provide credentials section packageSourceCredentials
like this:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="Local" value="http://localhost:9090/httpAuth/app/nuget/v1/FeedService.svc" />
</packageSources>
<activePackageSource>
<add key="Local" value="http://localhost:9090/httpAuth/app/nuget/v1/FeedService.svc" />
</activePackageSource>
<packageSourceCredentials>
<Local>
<Username>login</Username>
<Password>pa$$w0rd</Password>
</Local>
</packageSourceCredentials>
</configuration>
This config
file should be next to the sln
file in repository.
This appears to be a known issue for TeamCity. The workaround suggests adding the package source via the command line client and then updating those sources with the authorization credentials:
nuget sources add -name [name] -source [feedUrl]
nuget sources update -Name [name] -User [username] -pass [password]
It's my understanding that Nuget will cache those credentials for future requests. I don't know how often that cache is cleared; you may need to run that nget sources update
right before you kick off your build to ensure that the cache is coherent.