Nuget with Artifactory。密钥无法在指定状态下使用

时间:2015-04-01 16:10:20

标签: nuget artifactory nuget-package-restore

我使用Artifactory作为NuGet存储库来存储所有nuget包。  当我们使用此Artifactory链接作为源时,Visual Studio中的包管理器会提示输入凭据并且工作正常。  一旦我们转移到构建机器(没有VS)并尝试构建应用程序,它就会抛出错误:

  

.nuget \ NuGet.targets(100,9):错误:密钥无效,可用于   指定的状态。

我使用-user -password添加了source,并将config放在本地用户位置。我尝试使用ClearText密码和加密密码都抛出相同的错误。

我在这里遗漏了什么?请指教。

4 个答案:

答案 0 :(得分:5)

我认为错误与Artifactory无关。 NuGet报告的问题与nuget.config文件中的加密/解密用户凭据有关。

当我尝试为回购设置apiKey时遇到错误:

NuGet setapikey user:pwd -Config .\NuGet.test.Config -Source .\packages

NuGet报告“密钥无法在指定状态下使用”。 我在NuGet.test.Config附近有NuGet.config文件。该nuget.config包含packageSourceCredentials部分,其中包含其他用户的凭据(而不是传递给setapikey的部分)。 从nuget.config中删除该凭据后,错误就消失了。

答案 1 :(得分:0)

请检查%AppData%\ NuGet中的Nuget.Config 您可能需要重新创建它才能解决问题。

仅供参考,我的构建代理存在相同的问题,可以通过删除“ C:\ Windows \ ServiceProfiles \ NetworkService \ AppData \ Roaming \ NuGet”中的“ nuget.config”来解决此问题

答案 2 :(得分:0)

在向构建服务器添加全局nuget配置后,在TeamCity中解决了此问题。

必须在构建配置中更改为 nuget.exe的新版本,因为旧版本可能无法解决nuget配置中的某些设置。

答案 3 :(得分:0)

当我使用新的用户帐户登录Windows时遇到了相同的错误(故事:由于勒索软件的感染,我们公司的网络管理员已删除了我们的用户,并为我们每个人创建了一个新的用户帐户)。

我们公司有一个本地nuget服务器(使用免费的Nuget服务器创建)。

正如@Jinsoo所说,我需要删除Nuget.Config中的nuget设置(位于%AppData%/ Roaming / Nuget文件夹),并使用以下命令再次为nuget源设置apikey:

nuget setApiKey abcdefghijklmn -Source http://www.our-company-nuget-server.com/nuget

此后,我又能够发出'nuget push'命令。