Why does MSBuild look in C:\ for Microsoft.Cpp.Default.props instead of c:\Program Files (x86)\MSBuild? ( error MSB4019)
I got this problem when publishing a cocos2d-x application using their command line tool, which calls MSBuild. I'm using Win 7 64-bit, VS2013 express, cocos2d-x version 3.3, .NET Framework 4.5 installed.
I fixed the problem by setting the following before running the cocos.py publish command:
SET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120
For those who didn't follow the MS proscribed order (see Xv's answer) you can still fix the problem.
MSBuild uses the VCTargetsPath
to locate default cpp properties but cannot because the registry lacks this String Value.
Check for the String Value
- Launch regedit
- Navigator to
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
- Inspect
VCTargetsPath
key. The value should = "$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
"
To fix
- Launch regedit Navigator to
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
- Add String Value
VCTargetsPath
- Set Value to "
$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
"
Note: HKLM
stands for HKEY_LOCAL_MACHINE
.