I have set up a private nuget feed using a empty web application and the nuget server package. It is all working, I can retrieve from the feed, and I can publish to the private feed using the Nuget Package Explorer. But I cant publish via the command line - it prompts for credentials. I have set the ApiKey in the web application in the Appsettings, to a simple password, and I have tried adding the ApiKey to the push command. This Prompts me for a username and then a password. I have also tried the SetApiKey command but I get the same behavior. On the build server I am trying the same thing with the same results.
Here is the error messages from the build Log (identifying info x'd out)
nuget pack "C:\Builds\2\OE Phase II\Common\src\WebApi\Web.Http\Bxxxxxxxs.Web.Http.csproj" -IncludeReferencedProjects -Properties Configuration=Release
nuget SetApiKey Bxxxxxxx1 -Source http://tfs12.xxxxxxxrps.com/Nuget
nuget push *.nupkg -s http://tfs12.xxxxxxxrps.com/Nuget/
C:\Builds\2\OE Phase II\Common\bin\xxxxxxx.Web.Http.dll
1 File(s) copied
Attempting to build package from 'xxxxxxx.Web.Http.csproj'.
Packing files from 'C:\Builds\2\OE Phase II\Common\src\WebApi\Web.Http\bin\Release'.
Using 'xxxxxxxs.Web.Http.nuspec' for metadata.
Found packages.config. Using packages listed as dependencies
Successfully created package 'C:\Builds\2\OE Phase II\Common\bin\xxxxxxxs.Web.Http.1.0.0.0.nupkg'.
The API Key 'xxxxxxx' was saved for 'http://tfs12.xxxxxxxrps.com/Nuget'.
Pushing Bxxxxxxxrs.Data 1.0.0.0 to 'http://tfs12.xxxxxxxrps.com/Nuget/'...
Please provide credentials for: http://tfs12.xxxxxxxrps.com/Nuget/
Object reference not set to an instance of an object.
UserName: Password:
Found solution for Windows Server 2012 and Nuget.Server 2.8.5
- Open IIS manager
- find your "Nuget.Server" application
- right click and select "Edit permissions"
- go to "Security" tab
Add "write" permission for group "Everyone".
API key is for uploading/pushing packages. Looks like you have a http proxy enabled and you can set the username and password by calling nuget.exe config command.
Some example:
nuget config -Set HTTP_PROXY=http://*.*.. -Set HTTP_PROXY.USER=domain\user
nuget.config HTTP_PROXY
This worked for me: Site > Authentication > enable Windows Authentication (I only had anonymous by default) and push will use your domain account without user input.
Also which version of NuGet.Server package did you use? NuGet already released 2.7.2 version of it.
Can you try and see if the null ref exception still reproes? Thanks.
You may find this SO answer helpful, as it covers how to configure credentials on a workstation and/or build server, which is required to push via a command-line to a server that requires authentication (e.g. private feed.)
An API key is not required to publish.
I had this issue too and I knew it worked before, turns out I was using NuGet.exe 2.8.1 upgrading using
NuGet.exe update -self
took it to 2.8.3 and now works fine.
来源:https://stackoverflow.com/questions/20228184/pushing-to-private-nuget-feed-prompts-for-credentials