2017-09-15 148 views
2

我們有一個內部部署TFS 2012服務器和構建服務器。我們正在升級到VS和TFS 2017.現在,有人要求建立另一個構建服務器,這將允許我們從現有的TFS服務器構建新的2017項目。我創建了一個新的構建服務器,並在其上安裝了TFS 2012構建服務以及VS2017。我創建了一個新的構建定義,但未能編譯,並且錯誤顯示了2012年的語法更改,這些更改在2012年無效。如何將此配置爲針對安裝的VS2017構建項目?使用TFS 2012構建服務器構建VS2017項目

+0

我們使用的是DefaultTemplate11.1xaml。我讀過有新版本會從新路徑獲取MSBuild版本,但我不知道從哪裏獲取這些新模板。 – Sam

+0

TFS2017中的構建模板完全不同。您可能需要權衡解決此問題需要多長時間。升級會更容易。我最近做了,因爲你在2012年,你必須升級到2013年,或者像我2017年之前的2015年一樣。我也必須稍微修改流程模板。 –

+0

因此TFS 2012不能直接進入2017?我們並沒有意識到這一點。你知道爲什麼嗎?我看到一些地方說DefaultTemplate.11.xaml可以修改爲指向新的MSBuild版本,但提到的部分似乎並不存在於我的文件中。 – Sam

回答

1

舊的Visual Studio版本將msbuild安裝到C:\Program Files (x86)\MSBuild\<version>\bin中,顯然RunMSBuild活動使用ToolVersion + ToolArchitecture來計算此路徑。

VS 2017會安裝它C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ bin並且RunMSBuild無法再計算正確的路徑。您不能使用舊的DefaultTemplate11.1xaml與VS2017集成。

爲了完成這項工作,您可以嘗試修改TFSBuildServiceHost.exe.config,並且必須在構建服務器上安裝VS 2013或VS 2015版本才能使其工作。更詳細的步驟請按照Jonesy2488的答案在此鏈接:How to get VS 2017 working with TFS 2017 XAML Builds


此外,XAML構建在TFS 2017年棄用,在TFS的TGE下一個版本(2018)將不可用。 VSTS已不再支持它們。

我正在尋找託管的XAML構建控制器。它去了哪裏?

不再支持託管的XAML構建控制器。在2016年4月或之後創建的賬戶 無權訪問它。我們計劃 所有賬目 除去託管XAML編譯器,可能是儘快2017年三月

Source

既然你要升級並使用TFS2017。強烈建議您將您的版本轉換爲vNext Build以訪問某些新技術和支持。更多請參考Why Should I Leave XAML Builds?

+0

是的,今天早上我意識到了。我讀了它。我想我正要轉向新的構建平臺。 – Sam

+0

好主意Sam,最好的做法是讓應用程序保持在組織中的同一版本和sp級別上。 –

2

感謝這篇文章,我能夠使用Visual Studio 2017使用TFS 2012與構建服務器構建C#6語法的持續集成。希望這可以節省下一個人一些時間來解決這個問題。

以下是我爲了讓TFS 2012構建C#6語法而更改的內容列表。在與生成代理的機器上安裝VS 2017年的企業,安裝設置頁面上,確保MS構建選擇 enter image description here

編輯構建定義,並確保MSBuild的參數是/tv:15.0 /p:GenerateBuildInfoConfigFile=false /p:VisualStudioVersion=15.0

enter image description here

檢查您的構建定義正在使用的模板,並通過轉到源代碼管理資源管理器並進入團隊項目並進入BuildProcessTemplate對其進行修改,它應該具有。xaml文件,通過雙擊修改它enter image description here

應該有兩個操作,說運行MSBuild項目。您需要將兩個toolpath屬性都更改爲指向構建服務器上的msbuild.exe父文件夾。在我的情況下,構建服務器是32位機器,因此Bin文件夾的路徑在Program Files旁邊沒有(x86),您需要檢查構建服務器以在此處輸入正確的路徑。 enter image description here 做出更改後,您需要保存xaml並將其簽入。

+0

嗨,@ gavin,xaml不是最大的搜索,請問,請告訴它的結構是ToolPath變量的位置? –