我有一个TFSBuild 2013服务器,我们现在试图建立UWP项目,但我们似乎无法使其使用正确的MSBuild版本。TFSBuild 2013无法更改msbuild版本
症状:
在构建UWP项目中,我们得到许多这样的错误: C:\ Program Files文件(x86)的\的MSBuild \微软\ VisualStudio的\ v14.0 \ AppxPackage \ Microsoft.AppXPackage。目标(283):在“'$(TargetPlatformVersion)'> = '10 .0.11000.0'”条件下,在“10.0.11000.0”上尝试进行数值比较,该比较评估为“10.0.11000.0”而不是数字。
许多报告都报道了这个错误,它们都告诉你确保TFS Build使用正确版本的MSBuild。这就是问题所在。我们似乎无法让构建服务器使用正确的版本。
下面是我们试图(构建定义使用TfvcTemplate.12.xaml模板):
- 构建服务器
- 上安装2015年构建工具(更新3)构建服务器上安装VS2015 (Yuck)
- 构建定义中的MSBuild参数的各种组合。 (/tv:14.0 & /p:VisualStudioVersion=14.0)
- 夹杂Microsoft.Net.Compilers的NuGet包
- 编辑TfvcTemplate.12.xaml模板和设置 “运行的MSBuild” 步骤以设置 “ToolsVersion” 到“ 14.0" 。 (注意,这个版本的模板没有“ToolsPath”设置,所以我不能这么做)。
- 在每一个设置ToolsVersion =“14.0”的.csproj文件
无论我们怎么改变,我们不能生成代理使用14.0版本的MSBuild。
奇怪的是,nuget在执行包恢复时似乎找到了正确的版本。在运行nuget.exe restore命令时,我们在日志中看到了这一点:MSBuild自动检测:在'C:\ Program Files(x86)\ MSBuild \ 14.0 \ bin'中使用msbuild版本'14.0'。
但在日志中,所有的错误开始,我们看到这进一步下跌(注:错误的工具版本): C:\ Program Files文件(x86)的\的MSBuild \ 12.0 \ BIN \ MSBuild.exe/NOLOGO/noconsolelogger “C:\构建......” [SNIP]
任何帮助或建议感激地收到 - 我在我无计可施:)
您是否可以在生成代理机器上手动构建MSBuild命令行项目?您是否指定了MSBuild参数/ p:AppxBundlePlatforms =“$(BuildPlatform)”/ p:AppxPackageDir =“$(Build.BinariesDirectory)\ AppxPackages \\”/ p:AppxBundle =总是在您的构建定义中? –
是的,在服务器上使用VS2015构建解决方案可以正常工作。 – MercifulGiraffe
如果我们可以强制TFSBuild始终使用MSBuild的14版本,我们会很高兴。我们可以强迫它以默认方式做到这一点吗? – MercifulGiraffe