为什么MSBuild在C:\for Microsoft.Cpp.Default.props中查找,而不是在C:\Program Files(x86)\MSBuild中查找?(错误MSB4019)
运行msbuild生成vc2010项目时,出现以下错误:为什么MSBuild在C:\for Microsoft.Cpp.Default.props中查找,而不是在C:\Program Files(x86)\MSBuild中查找?(错误MSB4019),msbuild,Msbuild,运行msbuild生成vc2010项目时,出现以下错误: error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. 如果您知道是什么阻止了此变量的正确设置,请告诉我。在64位系统上
error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found.
Confirm that the path in the <Import> declaration is correct, and that the file exists
on disk.
如果您知道是什么阻止了此变量的正确设置,请告诉我。在64位系统上,MSBuild默认为以下属性(其中C:是SystemDrive): 如果未安装,则表示您安装了一些自定义第三方覆盖目标,或者您的MSBuild安装已损坏 尝试的事项:
- 修复.NET安装
- 应用最新的Visual Studio Service Pack
- 如上所述手动设置
(注意64位机器上的MSBuildExtensionPath
部分)x86
MSB4019
错误
该更新的自述声明建议的顺序为
对于那些没有遵守MS禁令的人(请参阅),您仍然可以解决问题 MSBuild使用
VCTargetsPath
定位默认cpp属性,但无法定位,因为注册表缺少此字符串值
检查字符串值
- 启动regedit
- 导航至
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
- 检查
键。该值应=“VCTargetsPath
”$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
- 启动regedit Navigator至
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
- 添加字符串值
VCTargetsPath
- 将值设置为“
”$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
HKLM
代表HKEY\u LOCAL\u机器
为我安装。但是,我遇到了更新问题,因为我已经安装了VS2010和VS2010SP1。如
上面,readme.htm文件包含“已知问题”部分中最常见安装问题的解决方案。我会按照readme.htm中的说明进行操作,并在每次故障排除尝试后重新启动您的计算机,因为某些安装会写入您的注册表。我在使用调用MSBuild的命令行工具发布cocos2d-x应用程序时遇到此问题。我使用的是Win 7 64位、VS2013 express、cocos2d-x版本3.3、.NET Framework 4.5 在运行cocos.py publish命令之前,我通过设置以下内容修复了该问题:
SET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120
遇到此错误时,我编写了一个生成脚本,在递归地挖掘C:\Windows\Microsoft.NET文件夹中找到的任何MSBuild.exe文件后,该脚本会将MSBuild放在%PATH%上。最后找到的命中是放置在路径上的目录。由于
dir
命令会在Framework
之后命中Framework64
文件夹,因此我在路径上得到一个64位的MSBuild。我试图构建Visual Studio 2010解决方案,结果将搜索字符串从C:\Windows\Microsoft.NET
更改为C:\Windows\Microsoft.NET\Framework
,这样我将得到一个32位的MSBuild.exe。现在,我的解决方案文件已生成。我刚刚将VCTargetsPath={c:\…}
作为环境变量添加到我的Hudson作业中。我最近遇到了同样的问题,在以不同的顺序安装不同的包之后,它变得非常混乱。那么我找到了这份回购协议-
npm安装--全局windows构建工具
它安装编译大多数节点模块所需的Python&VS构建工具。真是太棒了 MSBuild是一个独立的生成工具,经常与其他工具捆绑在一起。它可能已经在.NET(旧版本)、VisualStudio(更新版本)、甚至Team Foundation Bug中安装在您的计算机上。p> MSBuild需要与将使用它的Visual Studio或TFS版本以及编译源代码所依据的.NET版本相匹配的配置文件、编译器等(工具集) 根据MSBuild的安装方式,配置文件可能位于其中一个或多个路径中
- C:\ProgramFiles(x86)\MSBuild\Microsoft.Cpp\v4.0\
- C:\ProgramFiles(x86)\MSBuild\Microsoft.Cpp\v4.0\V120\
- C:\ProgramFiles(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\
- VCTargetsPath键处于 HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
- VCTargetsPath环境变量
我要添加的唯一一件事是环境变量对我不起作用。当我为记录保留尾随\时,文件
Microsoft.Cpp.Default.props
可以修改环境变量VCTargetsPath
,并使该变量的后续用法不正确。
我遇到了这个问题,通过将VCTargetsPath10
和VCTargetsPath11
设置为与VCTargetsPath
相同的值,解决了这个问题
这应该根据您使用的VS版本进行调整。我在VS2017环境中看到了这一点。我的构建脚本首先调用
VsDevCmd.bat
,为了解决这个问题,我在VsDevCmd
之后和调用MSBuild之前设置了VCTargetsPath
环境变量:
set VCTargetsPath=%VCIDEInstallDir%VCTargets
我在Visual Studio 2015版上遇到了这个问题。当我使用cmake生成项目时,出现了这个错误 错误MSB4019:导入的项目“D:\Microsoft.Cpp.Defaul”
SET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120
set VCTargetsPath=%VCIDEInstallDir%VCTargets
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\10.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\11.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\12.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\10.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\11.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\12.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
C:\Program Files\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\
SET VCTargetsPath=$(VCTargetsPath)
set VCTargetsPath=
call %ProgramFiles(x86)%/Microsoft Visual Studio/2019/Professional/MSBuild/Current/Bin\msbuild.exe ...