我有一個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