我使用Artifactory作为NuGet存储库来存储所有nuget包。 当我们使用此Artifactory链接作为源时,Visual Studio中的包管理器会提示输入凭据并且工作正常。 一旦我们转移到构建机器(没有VS)并尝试构建应用程序,它就会抛出错误:
.nuget \ NuGet.targets(100,9):错误:密钥无效,可用于 指定的状态。
我使用-user -password添加了source,并将config放在本地用户位置。我尝试使用ClearText密码和加密密码都抛出相同的错误。
我在这里遗漏了什么?请指教。
答案 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'命令。