在 TFS 2012 Build Service 編譯 VS2015 專案

工作環境用的是 TFS 2012 Build Service,最近要編譯 VS2015 專案,程式用到 C# 6.0 超好用的字串插值寫法當場被打臉,得到 Unexpected character '$' 錯誤。原因很明顯,VS2015 改用 Roslym 編譯器,TFS 2012 Build Service 上沒裝是要編個屁?

經過一番摸索(還學到 TFS 的編譯範本原理)終於搞定,細節整理如下。

首先要下載 MS Build Tools 2015 安裝到 Build Service 主機。(安裝完整 VS2015 應該也成,但有殺雞用牛刀之嫌)

安裝完畢 Program Files (x86) 目錄會多出 14.0 資料夾,這個路徑稍後會用到。

建置定義編輯畫面的 Process 區有個 Build process template 項目,預設是收合的,打開可以目前使用 Default Template (DefaultTempalte.11.1.xaml),而它位於 TFS 版控該專案的 BuildProcessTemplates 資料夾(每次建立 TFS 專案都會看到系統自動產生 BuildProcessTemplates 目錄,至今才明白它的用意)。這個 XAML 檔是一套 Windows Workflow 流程,最棒的是可直接用 Visual Studio 視覺化編輯。由於 DefaultTemplate.11.1.xaml 適用 VS2012/VS2013,需要修改才能用於 VS2015 專案。修改此範本使用其支援 VS2015 是種解法,而更好的做法是另外新增一個 VS2015 專用的建置範本,二者並存,未來再視 VS2013 或 VS2015 專案選擇適用範本。

其實 DefaultTemplate.11.1.xaml 只要小改路徑設定就可以編譯 VS2015 專案,我複製一份並改名為 DefaultTemplate.VS2015.xaml 放在 BuildProcessTemplates 目錄下,點擊兩下即可使用 Visual Studio 修改流程。在流程圖中找到「對專案執行MSBuild」:

開啟其屬性設定找到 ToolPath 項目填入我們安裝 MS Build Tools 2015 的路徑:"C:\Program Files (x86)\MSBuild\14.0\Bin":

此處有個眉角-XAML 裡還有另一個「對專案執行MSBuild」,也要修改:

將 XAML 存檔並簽入 TFS,接著將建置定義的建置範本換成 DefaultTemplate.VS2015.xaml(若它不在下拉選單中,請使用 New 選取加入)重新執行建置,就可以在 TFS 2012 Build Service 成功編譯 VS2015 專案囉~

歡迎推文分享:
Published 05 March 2017 11:57 AM 由 Jeffrey
Filed under: ,
Views: 1,760



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<March 2017>
SunMonTueWedThuFriSat
2627281234
567891011
12131415161718
19202122232425
2627282930311
2345678
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication