Dot-Net

TFS 2015 建構模板無法建構 C#7 功能

  • September 16, 2017

我們使用 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 建構遷移到新的建構系統,它在建構過程中提供了更多的自定義,如果您閱讀文件,實際上使用/理解要簡單得多。

https://docs.microsoft.com/en-us/vsts/build-release/

引用自:https://stackoverflow.com/questions/43057598