无法从命令行VS2017运行msbuild for C ++

时间:2017-06-14 18:58:52

标签: c++ command-line msbuild visual-studio-2017

我有一个只存在于Visual Studio 2017中的项目。它是一个C ++ dll,直到此时我在Visual Studio GUI中构建它没有任何问题。但是现在我正在尝试设置自动化,在命令行上构建项目并将输出文件上传到所需的位置。这是我到目前为止所尝试的(在一个全新的命令提示符中):

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]

让我重申,我已经成功构建了针对v141工具集的Visual Studio 2017,它只是在命令行上我遇到了麻烦。在我的Visual Studio Installer应用程序中,我检查了VC ++ 2017 v141工具集。我查看了文件系统,在C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\内没有v141文件夹。

谢谢!

2 个答案:

答案 0 :(得分:3)

谢谢你们!我按照https://docs.microsoft.com/en-us/cpp/build/building-on-the-command-line说"默认情况下,这些工具安装在驱动器:\ Program Files(x86)\ Microsoft Visual Studio 版本 \ VC \ bin中。&#34 ;.显然这些文档已经过时了...我能够使用以下命令

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

答案 1 :(得分: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文件的另一种方法是通过同一篇文章中提到的命令提示符快捷方式。首先通过展开start-> Visual Studio Year 找到它们,右键单击并找到它们的位置。然后检查他们指向的位置。