我有一个问题几乎与这篇文章具有相同的解剖结构:
为什么 MSBuild 在 C:\ 中查找 Microsoft.Cpp.Default.props 而不是 c:\Program Files (x86)\MSBuild?(错误 MSB4019)
添加注册表(根据 Peter Kahn 在另一篇文章中的建议)似乎没有帮助,即使它以前丢失了。我确实将所有文件都放在正确的目录中,即
c:\Program Files (X86)\MSBuild\Microsoft.Cpp\v4.0\V110
看,如果我选择以下作为 MSBuildExtensionsPath
MSBuildExtensionsPath32 = C:\Program Files (x86)\MSBuild
连同注册表
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersion\4.0\VCTargetsPath=$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V110
HKLM\SOFTWARE\WoW6432Node\Microsoft\MSBuild\ToolsVersion\4.0\VCTargetsPath=$(MSBuildExtensionsPath64)\Microsoft.Cpp\v4.0\V110
理论上,这应该以存储文件的目录结束。但实际上,MSBuild 正在寻找其他地方:
error MSB4019: The imported project "C:\MSBuild\Microsoft.Cpp.props" could not be found.[..]
更令人费解的是:如果 $(MSBuildExtensionsPath) 更改为不在 c:\Program Files (X86)\ 中的内容 - 例如:
MSBuildExtensionsPath32 = C:\test\MSBuild
生成的错误消息发生了变化,令人惊讶的是,路径被正确整理:
error MSB4019: The imported project "C:\test\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.default.props" could not be found.[..]
有趣的是,这个文件实际上确实存在(在那里复制了它..),但仍然找不到。WTH错了?