Nuget通过构建服务器恢复"无法找到版本"

时间:2015-09-02 18:23:18

标签: c# nuget teamcity

我有一个VS解决方案,作为TeamCity Build的一部分,我们从私有NuGet提要(myget)和公共提要(nuget.org)恢复包。大多数软件包都可以恢复正常,但它依赖于下面的WebApi和Mono.Security。这一切都在Visual Studio本地工作。

[restore] NuGet command: C:\TeamCity\buildAgent\plugins\nuget-agent\bin\JetBrains.TeamCity.NuGetRunner.exe C:\TeamCity\buildAgent\tools\NuGet.CommandLine.DEFAULT.nupkg\tools\NuGet.exe restore C:\TeamCity\buildAgent\work\953bd084b49f7d88\DataFinch.Web.sln -Source https://www.myget.org/F/datafinch/auth/<hidden>/api/v2 -Source https://api.nuget.org/v3/index.json
[11:41:35][restore] Starting: C:\TeamCity\buildAgent\temp\agentTmp\custom_script473789219385667038.cmd
[11:41:35][restore] in directory: C:\TeamCity\buildAgent\work\953bd084b49f7d88
[11:41:35][restore] JetBrains TeamCity NuGet Runner 8.0.37059.9
[11:41:35][restore] Registered additional extensions from paths: C:\TeamCity\buildAgent\plugins\nuget-agent\bin\plugins-2.8
[11:41:35][restore] Starting NuGet.exe 2.8.50926.602 from C:\TeamCity\buildAgent\tools\NuGet.CommandLine.DEFAULT.nupkg\tools\NuGet.exe
[11:41:43][restore] Unable to find version '5.2.3' of package 'Microsoft.AspNet.WebApi.Client'.
[11:41:43][restore] Unable to find version '5.2.3' of package 'Microsoft.AspNet.WebApi.Core'.
[11:41:43][restore] Unable to find version '3.2.3.0' of package 'Mono.Security'.
[11:41:43][restore] Unable to find version '6.0.4' of package 'Newtonsoft.Json'.
[11:41:43][restore] Process exited with code 1

Teamcity配置: enter image description here

6 个答案:

答案 0 :(得分:34)

根据nuget docs https://docs.nuget.org/consume/Command-Line-Reference尝试使用https://www.nuget.org/api/v2代替https://api.nuget.org/v3/index.json

答案 1 :(得分:3)

构建失败的原因是nuget.exe的旧版本。我终于通过下载最新版本解决了这个问题,并将此可执行文件放在Program Files x86文件夹中。然后我创建了一个新的系统varbele来指向这个可执行文件。之后,我在我的TFS Build Definition中添加了一个NuGetInstaller包,让我使用这个新的NuGet.exe配置TFS。  This link helped me to let TFS use this new NuGet version

答案 2 :(得分:0)

我遵循了这个:https://blogs.msdn.microsoft.com/tfssetup/2017/04/18/tfs-2017-update-1-nuget-restore-task-always-fails-trying-to-find-packages-even-though-they-exist-on-the-feed/

我曾尝试过3.3并遇到此错误:

  

恢复NuGet包Microsoft.AspNet.WebPages.3.2.3。   警告:无法找到“Antlr”软件包的版本“3.5.0.2”。

我下载了最新的NuGet 4.3.0.4406并将自定义路径设置为NuGet,但也失败了。

令人惊讶的是,当我切换到3.5时,它起作用了。

enter image description here

如果您真的遇到困难,请在命令行提示符中运行该命令,它将起作用:

C:\Program Files (x86)\NuGet\nuget.exe restore -NonInteractive E:\agentXYZPool\_work\1\s\xyz.sln

答案 3 :(得分:0)

我遇到了一个利用TFS和Visual Studio构建从属的问题。

我修复它的方式是,我打开了在Visual Studio中没有编译的解决方案,右键单击SLN并选择&#34;启用还原NuGet包&#34;

提示您必须接受的对话框。在你做完之后,你可能会很高兴。再次右键单击SLN并运行&#34; Restore NuGet Packages&#34;,如果该操作成功,那么你就是金色。

在设置从属环境时,您可以通过编程方式调整某些设置,但这是解决此类问题的直接方法。

答案 4 :(得分:0)

根据THIS截至MS撰写的当前文档,正确的URL为:https://api.nuget.org/v3/index.json

所以我要解决此问题,因为我认为它与URL无关。我做了两件事,不确定是哪个问题解决了,但我会在这里张贴两个内容,以防它对某人有所帮助。

  • 在TFS2018内以及在安装Nuget的构建步骤中,我指定了4.9.3版本(之所以选择4.9.3(原因是因为通过查看VS的详细日志,我注意到在构建期间它正在使用VS)版本),并选择始终下载最新版本。

  • 我做的第二件事是我从项目中删除了一个Nuget.Config文件,该文件是我正在测试的东西遗留下来的。然后我重新提交对TFS的更改

完成上述两个步骤后,其余构建工作开始进行。

答案 5 :(得分:0)

使用Visual Studio的Nuget的旧版本

  • Visual Studio具有C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\Nuget.exe。詹金斯(Jenkins)将其用于nuget restore
  • 更新了程序文件中的Nuget,
    C:\Program Files (x86)\NuGet> ./nuget.exe update -self
    
  • 将詹金斯(Jenkins)指向新的Nuget路径并“用煤气煮饭”
    SET PATH=%PATH%;C:\Program Files (x86)\NuGet
    nuget restore SolutionName.sln