2017-06-14 47 views
0

我有一個只在Visual Studio 2017中生活過的項目。它是一個C++ dll,直到這一點我沒有任何問題在Visual中構建它Studio GUI。但是現在我試圖設置自動化功能,在命令行上構建項目並將輸出文件上傳到所需的位置。這是我到目前爲止已經試過(在一個全新的命令提示符):無法從命令行運行msbuild for C++ VS2017

cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC> 
vcvarsall amd64 
cd C:\Users\me\development\MyProject 
msbuild MyProject.slnl (or msbuild MyProject\MyProject.vcxproj) 

這給我的錯誤輸出

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\Microsoft.Cpp.Platform.targets(57,5): 
error MSB8020: The build tools for v141 (Platform Toolset = 'v141') cannot be found. To build 
using the v141 build tools, please install v141 build tools. Alternatively, you 
may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli 
ck the solution, and then selecting "Retarget solution". 
[C:\Users\dev\development\MetaReme\MetaReme\MetaReme.vcxproj] 

讓我再次重申,我已經在Visual已成功建立Studio 2017針對v141工具集,只是在我遇到問題的命令行上。在我的Visual Studio Installer應用程序中,我檢查了VC++ 2017 v141工具集。我已經看過文件系統,並在C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\文件夾中沒有v141文件夾。

謝謝!

+0

您是否正在使用IDE構建'amd64'配置? – Mahesh

+3

「Microsoft Visual Studio 14.0」與2015年相比,是否確定要使用正確版本的開發人員命令提示符? –

回答

1

謝謝你們!我正在關注https://docs.microsoft.com/en-us/cpp/build/building-on-the-command-line,它說:「默認情況下,這些工具安裝在驅動器:\ Program Files(x86)\ Microsoft Visual Studio 版本 \ VC \ bin中。」。顯然,這些文檔是過時的......我能得到它用下面的命令

cd "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build" 
vcvars64 
cd "C:\Users\me\development\MyProject" 
msbuild MyProject.sln 
0

我想你可能已經錯過了在提到article段落的第一部分工作:

在Visual Studio 2017中,這些位於Visual Studio安裝目錄的VC \ Auxiliary \ Build子目錄中。在Visual Studio 2015中,這些位於安裝目錄的VC,VC \ bin或VC \ bin \ architectures子目錄中,其中體系結構是本機或交叉編譯器選項之一。

當您使用Visual Studio 2017時,它們應該在VC \ Auxiliary \ Build中,就像您發現的那樣。

找到正確的.bat文件的另一種方法是通過同一篇文章中提到的命令提示符快捷鍵。首先通過展開開始 - > Visual Studio 找到它們,右鍵單擊並找到它們的位置。然後檢查他們指向的位置。