2017-10-19 95 views
2

我已經在構建服務器上爲Visual Studio 2017安裝了MSBuild(15.4.0)工具。要做到這一點,我用了題爲 「構建工具爲Visual Studio 2017年」 的鏈接從Visual Studio DownloadsMSBuild 15工具版本不被接受

到MSBuild.exe的路徑是:

C:\ Program Files文件(x86)的\微軟的Visual Studio的 \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin

我已經將此路徑添加到環境變量「路徑」。

我有因爲身體下面爲構建任務PowerShell腳本:

的MSBuild '.. \ MyApplication.sln'/噸:構建/tv:15.0 /P:GenerateBuildInfoConfigFile = FALSE/p:配置=釋放 /p:RunCodeAnalysis =真/p:VisualStudioVersion=15.0

但是,當這被執行(全部由TeamCity的處理)我發現在日誌中的以下內容:

MSBUILD:錯誤MSB1040:ToolsVersion無效。工具版本 「15.0」無法識別。可用的工具版本是「2.0」,「3.5」, 「4.0」。

documentation建議15.0應該是正確的。

編輯 從上What's New in MSBuild 15它指出了2017年的文件:

MSBuildToolsVersion此版本的工具是15.0。程序集版本號爲012.,版本爲15.1.0.0。

然而,2017年的文件MSBuild Command Line Reference狀態:

對於MSBuild的4.5,您可以指定版本以下值: 2.0,3.5和4.0。如果指定4.0,則VisualStudioVersion構建屬性指定要使用哪個子工具集。有關更多信息,請參閱 Toolset(ToolsVersion)的子工具集部分。

所以我有點困惑的命名:MSBuild 15或MSBuild 4.5 ...?

+1

PATH,善意的破壞者。鍵入「msbuild.exe」,你可能會先看到錯誤的列表。 –

+0

@Hans:C:\ Users \ Me>其中msbuild。EXE ** C:\ Program Files文件(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin \ MSBuild.exe ** – DrGriff

+0

如何直接從CMD運行構建命令行?我已經設置了這條路,併成功構建了Visual Studio 2017空白項目。您可以嘗試使用Visual Studio 2017創建空白項目,然後使用上述方法在構建服務器上構建。 –

回答

0

最後解決了這個問題 - 是的,這是不正確的路徑。

的解決方案是chaneg以上至powsershell行:

$msbuild = 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\msbuild.exe' 
    & msbuild '..\MyApplication.sln' /t:Build /m /p:GenerateBuildInfoConfigFile=false /p:Configuration=Release /p:RunCodeAnalysis=True /p:VisualStudioVersion=15.0