2017-03-14 143 views
1

我正在嘗試使用Visual Studio 2015和本地TFS 2013服務器爲傳統VB.Net ASP.Net Forms應用程序設置持續集成過程。但是,我無法獲得構建定義來成功構建我的應用程序。MSBuild VS Visual Studio - 編譯差異?

這是一個XAML構建定義,它可以在每個TFS檢查中高興地觸發,但由於錯誤編譯了一個與屬性相關的錯誤(如'Extended Properties cannot be initialized')的組件項目,因此迄今未能構建應用程序。

項目都在Visual Studio中愉快地編譯,所以我猜這些錯誤實際上是由於vbc.exe編譯器的版本或MSBuild使用的編譯器選項?

我試圖通過在項目中使用到的MSBuild參數(見下文),但沒有成功相同的編譯器設置。

/p:OptionStrict=false /p:OptionInfer=false /p:OptionExplicit=true /p:OptionCompare=binary 

主要應用項目有以下ToolsVersion,在項目文件中指定的,但可能Visual Studio的實際使用更高版本(14或15?),它的MSBuild是不是?

<Project DefaultTargets="Build" ToolsVersion="12.0" 

任何有關爲什麼此項目將在Visual Studio中完美構建而不是在構建定義中的建議將非常感謝。

+0

您的構建代理安裝了哪個版本的Visual Studio? –

+0

構建代理是包含構建定義權限的TFS服務器?如果是這樣,它並沒有安裝在那裏,但我沒有複製到以下位置的C:\ Program Files \(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0' 。編譯器中已經存在'C:\程序文件(x86)\的MSBuild \ 12.0 \ Bin' – Ted

+2

VS2015使用的MSBuild 14,https://www.microsoft.com/en-us/download/details.aspx?id= 48159和https://chocolatey.org/packages/microsoft-build-tools你的代理機器上有這個嗎? –

回答

2

就像我評論說,這裏的棘手的部分是確定正確的MSBuild工具版本,然後以正確的方式使用它。

首先,它是很難記住他們的Visual Studio版本的MSBuild的版本號。您可以使用谷歌和下面只是一些參考,

  • 的Visual Studio 2015年 - MSBuild的14
  • 的Visual Studio 2017年 - MSBuild的15

確保他們誰執行構建的計算機上存在。

其次,你可能需要重寫工具版本(per this article)。

+0

再次感謝Lex。我第一次設置了MSBuild定義,現在我遇到了由於沒有在構建代理上安裝VS2015 SDK/VS 2015本身而導致的另一個問題,並且我也開始尋找關於不把TFS,構建控制器和構建代理在同一臺服務器上(我希望這麼做)。在安裝其他任何東西之前,可以多做一些閱讀。 – Ted