如何使我的Visual Studio解决方案在teamcity中使用最新版本的nuget.exe

时间:2019-06-26 15:17:04

标签: visual-studio nuget teamcity

几年前,我有一个.net网站,在TeamCity中构建该网站时会导致错误。当teamcity进入站点的csproj文件的第二个构建步骤MSBuild时,尝试运行程序包还原时出现此错误: “'...'软件包要求NuGet客户端版本为'2.12'或更高版本,但当前的NuGet版本为'2.8.60318.667'” 原因是此解决方案在其目录中包含nuget.exe文件,该文件的版本为2.8.60318.667。我正在处理的其他项目/网站上没有nuget.exe文件,而且似乎正在以teamcity建立。

我需要(1)更新解决方案以便可以删除nuget.exe文件,或者(2)使用最新版本,希望可以解决teamcity问题。

当我用最新的nuget替换nuget.exe文件时,在构建时收到错误消息: “ 1> D:\ Sites \ testSite.nuget \ NuGet.targets(100,9):错误:找不到路径'D:\ Sites \ testSite \\ packages \ System.Security.AccessControl.4.4的一部分。 0'。” 我认为解决方案目录和软件包位置之间的配置文件中某处有空间,但我不确定要看哪里。有人可以帮忙吗?

我尝试从解决方案中删除.nuget文件夹,但是在构建时出现错误。有人可以帮助我重新配置我的解决方案,使其在没有特定本地版本的nuget的情况下工作吗?

如果有人能以任何方式提供帮助,我将非常感激,这将使我对Visual Studio和.net的理解达到极限。

谢谢

山姆

2 个答案:

答案 0 :(得分:1)

您可以在TeamCity中安装多个版本的Nuget工具并将任何一个设置为默认

默认为v4.4。

为此,请访问TeamCity文档链接:TeamCity Doc

现在特定的构建步骤,如果您想使用较低版本的nuget,可以选择其他版本的nuget安装程序/还原,如所附图片所示

enter image description here

答案 1 :(得分:0)

替换nuget.exe文件时遇到的问题是由于我下载的文件版本引起的。我使用的是旧版本(4.6.4),在构建解决方案时,我没有遇到软件包路径中的空格问题。

还有其他错误,但我现在已经解决了。