当我运行的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.
- 位于的MSBuild C:\程序文件(x86)的\的MSBuild
- HKLM \ SOFTWARE \ Wow6432Node \微软\的MSBuild \ ToolVersions \ V4.0 VCTargetsPath设置为$(MSBuildExtensionsPath32)\ Microsoft.Cpp \ V4.0 \
- 运行的MSBuild /冗长时:诊断为好系统显示MSBuildExtensionsPath32,MSBuildExtensionsPath64,MSBuildExtensionsPath设置环境在构建开始
- 设置MSBuildExtensionsPath32,MSBuildExtensionsPath64,MSBuildExtensionsPath设置为shell环境变量不会导致它们显示为环境在构建开始
尝试修复
- 卸载.NET 4.5,修复.NET 4.0
- 在系统变量设置MSBuildExtensionsPath32,MSBuildExtensionsPath64,MSBuildExtensionsPath。
看来,MSBuildExtensionsPath32没有被正确设置和设置MSBuildExtensionsPath没有帮助
SET MSBuildExtensionsPath="C:\Program Files\MSBuild"
请告知,如果你有什么阻止该变量的正确设置任何想法我知道。
Answer 1:
发布使用他们的命令行工具,它调用的MSBuild是Cocos2d-X的应用程序时,我得到了这个问题。 我使用的是Win 7的64位,VS2013快递,cocos2d的-X 3.3版本,安装了.NET Framework 4.5。
我通过运行cocos.py发布命令之前设置以下固定的问题:
SET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120
Answer 2:
对于那些谁没有按照MS禁止令(见十五的答案 ),你仍然可以解决这个问题。
MSBuild的使用VCTargetsPath
定位默认CPP属性,但不能因为注册表缺少此字符串值。
检查字符串值
- 启动注册表编辑器
- 导航到
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
- 检查
VCTargetsPath
关键。 该值应= “ $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
”
修理
- 启动注册表编辑器导航到
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
- 添加字符串值
VCTargetsPath
- 设定值“
$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
”
注: HKLM
代表HKEY_LOCAL_MACHINE
。
Answer 3:
最近我有同样的问题,在不同的顺序安装不同的包装后,这是刚开始很凌乱。 然后我发现这个回购- https://github.com/felixrieseberg/windows-build-tools
npm install --global windows-build-tools
它安装的Python和VS生成所必需的编译大多数节点模块的工具。 它的工作一种享受!
Answer 4:
安装微软的Visual C ++ 2010 Service Pack 1的编译器更新为Windows SDK 7.1固定的MSB4019
错误,我是Windows7的上获得64楼。
该更新的自述文件指出,建议的顺序是
- Visual Studio 2010中
- Windows SDK的7.1
- 的Visual Studio 2010 SP1
- VISUAL C ++ 2010 SP1编译器更新为Windows SDK 7.1
Answer 5:
在64位的系统,MSBuild的默认为以下性质(其中C:是系统驱动):
MSBuildExtensionsPath = C:\Program Files (x86)\MSBuild
MSBuildExtensionsPath32 = C:\Program Files (x86)\MSBuild
MSBuildExtensionsPath64 = C:\Program Files\MSBuild
如果不是这样,它意味着你要么有一些自定义的第三方将覆盖安装目标,或者你的MSBuild安装已损坏。
您可以尝试:
- 修复安装.NET
- 应用最新的Visual Studio服务包
- 设置
MSBuildExtensionsPath
如上手动(注意x86
在64位机器上的部分)
Answer 6:
我对Visual Studio的2015年版的这个问题。 当我使用的cmake生成一个项目这个错误出现。
错误MSB4019:导入项目“d:\ Microsoft.Cpp.Default.props”未找到
我通过添加一个字符串固定它
VCTargetsPath
与价值
$(MSBuildExtensionsPath32)\ Microsoft.Cpp \ V4.0 \ V140
在注册表路径
HKLM \ SOFTWARE \微软\的MSBuild \ ToolsVersions \ 14.0
Answer 7:
在的MSBuild一个独立的构建工具,经常与其他工具捆绑在一起。 它可能已被安装到您的计算机。NET(旧版本),Visual Studio的(或更新版本),甚至是团队基础建立在。
MSBuild的需要配置文件,编译器等(工具箱)是Visual Studio或TFS将使用它的版本,以及.NET版本针对其源代码将被编译匹配。
根据安装方式的MSBuild,配置文件可以在一个或多个这样的路径。
- C:\ Program Files文件(x86)的\的MSBuild \ Microsoft.Cpp \ V4.0 \
- C:\ Program Files文件(x86)的\的MSBuild \ Microsoft.Cpp \ V4.0 \ V120 \
- C:\ Program Files文件(x86)的\的MSBuild \ Microsoft.Cpp \ V4.0 \ V140 \
在其他的答案,注册表项和/或环境变量点必须到工具集路径描述。
- 在HKLM \ SOFTWARE \ Microsoft提供的VCTargetsPath键\的MSBuild \ ToolsVersions \ 4.0
- 该VCTargetsPath环境变量。
偶尔,如安装工具的操作将离开设置不正确的注册表和/或环境变量。 其他答案都在修复它们的所有变化。
我要补充一点的是环境变量并没有为我工作,当我离开尾随\
Answer 8:
没有别的工作对我来说只是,设置路径为:
C:\Program Files\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0
Answer 9:
对于MSBuild的关键注册表项工作的罚款给我。 重要的是要记住,它必须根据64位或32位的分支上的MSBuild的版本,运行来完成是非常重要的。 我不建议使用环境变量,因为它可能会导致不同版本的MSBuild的问题。
该注册表文件修复,对于这两种情况下:
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\\'))"
Answer 10:
安装微软的Visual C ++ 2010 Service Pack 1的编译器更新为Windows SDK 7.1为我工作。 但是,我遇到的问题与更新,因为我已经有了VS 2010和VS 2010 SP1安装。 正如提到Xv的上方,Readme.htm文件包含了“已知问题”一节中最常见的安装问题的解决方案。 我会遵循的readme.htm的指示,每个故障排除尝试后重新启动机器,因为有些安装写入注册表。
Answer 11:
对于Windows 10的Visual Studio 2017年和2019
很多问题的答案这里适用于较旧版本的Visual Studio。 什么工作对我来说,如果使用Visual Studio 2017年社区版本,被称为设置环境变量VCTargetsPath
,给它的值
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets
如果使用Visual Studio 2019社区版,
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160
其他答案在这里这个变量设置为c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140
,但我在安装Visual Studio注意到,有没有在我的MSBuild文件夹,名为Microsoft.Cpp文件夹。 所以,请记住这一点,以及一个事实,即上面的路径是为Visual Studio 2017年的社区版。
此外,确保在您的环境变量,你的MSBuild的路径,如果你使用Visual Studio 2017年社区版本指向的MSBuild的正确版本,
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
如果你正在使用Visual Studio 2019社区版,
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin
Answer 12:
我碰到这个错误决定通过编写一个构建脚本后,将通过C递归地挖掘放的MSBuild在%PATH%:\ WINDOWS \ Microsoft.NET任何发现MSBuild.exe文件的文件夹。 最后发现严重的是这是把路径上的目录。 由于dir
命令将打Framework64
后的文件夹Framework
我得到了64位MSBuilds把我的路径之一。 我试图建立一个Visual Studio 2010解决方案和清盘从改变我的搜索字符串C:\Windows\Microsoft.NET
到C:\Windows\Microsoft.NET\Framework
,这样我会风与32位MSBuild.exe。 现在我的解决方案文件的基础之上。
Answer 13:
我只是说VCTargetsPath={c:\...}
作为一个环境变量来我哈德森工作。
Answer 14:
根据记录,该文件Microsoft.Cpp.Default.props
可以修改的环境变量VCTargetsPath
,使该变种的后续用法不正确。 我有这个问题,并通过设置解决了它VCTargetsPath10
和VCTargetsPath11
比相同的值VCTargetsPath
。
这要根据你所使用的版本VS进行调整。
Answer 15:
我在VS2017环境中看到了这个。 我的构建脚本调用VsDevCmd.bat
第一,而要解决这个问题,我设置VCTargetsPath
环境变量之后VsDevCmd
和调用的MSBuild之前:
set VCTargetsPath=%VCIDEInstallDir%VCTargets
Answer 16:
这是由于安装的MSBuild工具集和注册表设置不匹配。 如果你做一个或多个以下的它可以发生:
- 以错误的顺序安装多个Visual Studio的版本
- 卸载Visual Studio中的一个或多个版本
- 手动进行注册表更改或修改Visual Studio安装
唯一安全可靠的解决方案是重新安装操作系统。 如果你的项目需要的Visual Studio构建的多个版本, 首先安装旧版本 。 然后修复您的代码,以便您可以使用一个单一的工具来构建它,或者你或你的同事会在同一混乱很快再次。
如果这不是一个选择,第一次读到https://stackoverflow.com/a/41786593/2279059以便更好地理解问题和各种“解决方案”,实际上做什么。 然后,根据您的Visual Studio版本和安装,其他的答案或它们的变化可能最终帮助之一。
一些更多的提示:
- 试试这个答案: https://stackoverflow.com/a/38503503/2279059
文章来源: Why does MSBuild look in C:\\ for Microsoft.Cpp.Default.props instead of c:\\Program Files (x86)\\MSBuild? ( error MSB4019)