Pushing to private nuget feed Prompts for Credenti

2019-04-18 22:37发布

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: 

6条回答
家丑人穷心不美
2楼-- · 2019-04-18 22:54

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.

查看更多
干净又极端
3楼-- · 2019-04-18 22:55

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

http://docs.nuget.org/docs/reference/command-line-reference

查看更多
兄弟一词,经得起流年.
4楼-- · 2019-04-18 22:55

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.

查看更多
The star\"
5楼-- · 2019-04-18 23:00

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.

查看更多
唯我独甜
6楼-- · 2019-04-18 23:06

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".

查看更多
我命由我不由天
7楼-- · 2019-04-18 23:09

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.

查看更多
登录 后发表回答