在通过命令提示符在VS2019上构建C ++解决方案时,我遇到了错误。
C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Microsoft \ VC \ v160 \ Microsoft.Cpp.ToolsetLocation.props(50,3):错误MSB4019:导入的项目“ C:找不到\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Microsoft \ VC \ v160Platforms \ Win32 \ Platform.props。确认导入声明“ C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Microsoft \ VC \ v160Platforms \ Win32 \ Platform.props”中的表达式正确,并且该文件存在于磁盘上
观察后,很明显在某些props文件内部创建的路径存在问题。目前还不清楚原因和原因。
任何指针都会有很大帮助。
谢谢。
答案 0 :(得分:2)
MSBuild-MSB4019由于路径无效(Visual Studio 2019)
安装VS2019时出现一些错误。
要解决此问题,请尝试以下操作:
1)打开VS Installer,并确保已安装v142 Build Tool。
或在提升权限的命令提示符(管理员)上运行此命令:npm install --global --production windows-build-tools
。如果您没有npm,建议您安装它,否则将无法正常工作。
2)我发现v160Platforms
没有\
,与您的描述一样吗?
请创建一个名为VCTargetsPath
的新环境变量,并将其值设置为此:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\
3) do a fix in vs installer或更新VS(如果不是最新版本)。
然后使用developer command prompt for VS2019作为管理员来运行您的命令。
此外,您可以在命令行中使用-verbosity:detailed来查看详细的构建日志,以检查是否存在明显的错误。您可以查看this similar issue的更多信息。
答案 1 :(得分:1)
这不是由于安装问题引起的。这是由于VCTargetsPath传递给MSBuild.exe引起的。在VS2017中,期望在构建命令中传递VCTargetsPath,但是如果我们在VS2019中传递值,则会失败,并构造无效路径。因此,从命令中删除VCTargetsPath之后,对我来说一切正常。