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

Unable to run msbuild for C++ from the command line VS2017

本文关键字:msbuild for C++ 运行 VS2017 命令行      更新时间:2023-10-16

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

cd C:Program Files (x86)Microsoft Visual Studio 14.0VC>
vcvarsall amd64
cd C:UsersmedevelopmentMyProject
msbuild MyProject.slnl (or msbuild MyProjectMyProject.vcxproj)

这给了我错误输出

C:Program Files (x86)MSBuildMicrosoft.Cppv4.0v140Microsoft.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:UsersdevdevelopmentMetaRemeMetaRemeMetaReme.vcxproj]

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

谢谢!

谢谢大家!我遵循 https://learn.microsoft.com/en-us/cpp/build/building-on-the-command-line 说"默认情况下,这些工具安装在驱动器:\程序文件(x86(\Microsoft Visual Studio版本\VC\bin."中。显然这些文档已经过时了...我能够让它使用以下命令工作

cd "C:Program Files (x86)Microsoft Visual Studio2017CommunityVCAuxiliaryBuild"
vcvars64
cd "C:UsersmedevelopmentMyProject"
msbuild MyProject.sln

它在上述文章的段落的第一部分说:

在Visual Studio

2017中,它们位于Visual Studio安装目录的VC\Auxiliary\Build子目录中。在 Visual Studio 2015 中,它们位于安装目录的 VC、VC\bin 或 VC\bin\architectures 子目录中,其中 architecture 是本机或交叉编译器选项之一。

当你使用Visual Studio 2017时,它们应该在VC\Auxiliary\Build中,就像你发现的那样。

查找正确.bat文件的另一种方法是通过同一篇文章中提到的命令提示符快捷方式。首先通过展开开始>Visual Studio Year找到它们,右键单击并找到它们的位置。然后检查他们指向的位置。