Dot-Net
TFS 2015 建構模板無法建構 C#7 功能
我們使用 TFS 2015 作為我們的建構伺服器,用於與 xaml 建構定義進行持續集成。TfvcTemplate12.xaml 是我們正在使用的建構過程模板。當 Visual Studio 2015 發佈時,我們通過將 MSBuild 參數設置為
/p:VisualStudioVersion=14.0這樣做之後,建構伺服器能夠成功地建構具有 C# 6 特性的項目。現在 Visual Studio 2017 和 C# 7 已經發布,我想我可以簡單地在建構伺服器上安裝 Visual Studio 2017 並更新 MSBuild 參數以使用 v15.0。這似乎不起作用,建構代理仍然使用無法編譯 C# 7 中的新功能的 MSBuild v14.0。在進一步嘗試中,我嘗試將工具版本設置為 15.0
/tv:15.0但這也沒有用。建構失敗並顯示一個非常通用的錯誤消息,並且沒有任何用處可以幫助我解決這個問題。有沒有人讓這個工作?
Exception Message: MSBuild error 1 has ended this build. You can find more specific information about the cause of this error in above messages. (type BuildProcessTerminateException) Exception Stack Trace: at System.Activities.Statements.Throw.Execute(CodeActivityContext context) at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) at System.Activities.ActivityInstance.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager) at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
正如許多建議的答案所提到的,如果不手動修改模板本身,則根本不可能使用預設的 XAML 建構過程模板之一來使用 MSBuild v15。
通過修改 DefaultTemplate.11.1.xaml 並尋找 MSBuild 活動,我能夠成功地完成這項工作。在那裡,您需要手動將 ToolPath 屬性設置為安裝 MSBuild v15 的文件名。
ToolPath="C:\Program Files (x86)\Visual Studio\2017\<more path>\msbuid.exe"我可以保證這將適用於建築項目。雖然不太確定執行測試案例。其他人提到它不起作用,但我自己並沒有真正嘗試過。
自從寫了這個問題以來,我已經開始從 XAML 建構遷移到新的建構系統,它在建構過程中提供了更多的自定義,如果您閱讀文件,實際上使用/理解要簡單得多。