我在VSTS上有一个包提供,提供了我在一个也在VSTS上构建的解决方案中引用的几个包。在软件包恢复阶段,构建突然失败,日志表明它无法找到nuget应该恢复的dll。
恢复NuGet包Basd.Diagnostics.0.7.0。
警告:无法找到版本' 0.7.0'包裹' Basd.Diagnostics'。
我的nuget.config中列出了公共/私有订阅源,它们也显示在构建日志"Using Feeds..."
中,因此恢复操作无法找到实际的订阅源对于包裹。它更像是无法进行身份验证,因此无法从Feed中检索包。
如果我查看构建定义的历史记录,则从上次工作到现在有一个变化,就是这样:
"build": [
{
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "NuGet restore MySol.sln",
"timeoutInMinutes": 0,
"task": {
"id": "333b11bd-d341-40d9-afcf-b32d5ce6f23b",
"versionSpec": "*",
"definitionType": "task"
},
"inputs": {
"solution": "Basd.Core.sln",
"nugetConfigPath": "nuget.config",
"restoreMode": "restore",
"noCache": "false",
"nuGetRestoreArgs": "",
"verbosity": "",
"nuGetPath": "",
"preCredProviderNuGet": "false"
}
},
定义中现在有一个"preCredProviderNuGet": "false"
字段。我已经用Google搜索但我无法找到设置的方式和位置,但我假设这会阻止对我的Feed进行身份验证,这反过来又是恢复操作失败的原因。
那么这个设置在哪里和/或如何将其重新打开或将其作为条目删除?在工作构建def中,它没有设置为true,它只是不存在。
是否是我在nuget.config文件中设置的VSTS UI相关字段?我假设前者因为再次做差异表明我的nuget.config在工作和非工作构建之间没有任何变化。
答案 0 :(得分:1)
这似乎是由VSTS问题造成的,现在应该修复,请尝试构建代理。
问题:Packaging issues with Visual Studio Team Services – 7/30 – Resolved
答案 1 :(得分:0)
" preCredProviderNuGet"设置与您的问题无关。 NuGet Restore任务具有其他高级设置," NuGet.exe的路径"以及相应的复选框" NuGet.exe的路径低于版本3.2"。这些设置对应于构建json中的nuGetPath和preCredProviderNuGet设置。在使用中,如果还设置了nuGetPath,则preCredProviderNuGet仅具有影响,并且是对任务的信号,即使用的NuGet版本将无法使用凭证提供程序,因为在v3之前不支持插件凭据提供程序。 2
一个建议是将此任务的详细程度设置为" Detailed",然后重新运行构建。您将在NuGet Restore task \ Advanced \ Verbosity。
中找到它