Windows 2012 R2构建服务器,TeamCity 8.1.2,nuget.exe 2.8.1
启用并测试包含常规完整构建清理然后进行NuGet还原的构建配置后,我们启用了增量VCS更新并在我们的构建配置上启用了NuGet更新。在NuGet更新期间,构建配置现在失败并显示此错误:
[Step 1/4] update: Updating NuGet packages for OurSolutionName.sln
[22:20:10]NuGet command: D:\TeamCity\buildAgent\tools\NuGet.CommandLine.DEFAULT.nupkg\tools\NuGet.exe update D:\TeamCity\buildAgent\work\52034b1c4c1ab5f5\OurSolutionName.sln -Verbose -RepositoryPath D:\TeamCity\buildAgent\work\52034b1c4c1ab5f5\packages
[22:20:10]Starting: D:\TeamCity\buildAgent\temp\agentTmp\custom_script9174264003705363137.cmd
[22:20:10]in directory: D:\TeamCity\buildAgent\work\52034b1c4c1ab5f5
[22:20:10]Scanning for projects...
[22:20:10]The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TypeScript\Microsoft.TypeScript.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. D:\TeamCity\buildAgent\work\52034b1c4c1ab5f5\proofs\MvcRouting\MvcRouting\MvcRouting.csproj
[22:20:11]Process exited with code 1
[22:20:11][Step 1/4] Step Update nuGet packages (NuGet Installer) failed
密钥是MSBuild路径中的\ v10.0 \。我查看了错误中提到的csproj文件,它使用标准兼容性逻辑来确定Visual Studio版本并适当地设置路径,如果VisualStudioVersion为null,则仅回落到10.0。我检查了解决方案文件,并确认VisualStudioVersion是12:
Microsoft Visual Studio Solution File, Format Version 12.00
Visual Studio 2013
VisualStudioVersion = 12.0.30110.0
为什么NuGet更新似乎没有找到正确的Visual Studio版本?
答案 0 :(得分:0)
在Visual Studio中构建时,将定义VisualStudioVersion。在构建服务器上,默认情况下不会定义它。
您应该能够通过计算机或Team City中的环境变量进行设置。或者只是更新您的项目,以便它回退到版本12。
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">12.0</VisualStudioVersion>
NuGet没有从解决方案本身读取任何内容。它只是将它用作基本目录,从中可以找到解决方案下面任何子目录中存在的任何packages.config文件。