我在我的 Windows 7 64 位机器上使用了 VS 2012 Professional 的试用版大约 1 个月。
今天,我注意到Platform Toolset
选项(项目属性)设置为Visual Studio 2010 (v100)
,这似乎很奇怪,因为我正在运行 VS 2012。将“平台工具集”更改为 VS 2012 导致此问题标题中指出的错误:
无法打开包含文件:“SDKDDKVer.h”:没有这样的文件或目录
...在构建时stdafx.cpp
(错误本身发生在文件中targetver.h
)。
我之前浏览的论坛讨论暗示在 VS 2012 安装期间存在 VS 2010 可能会导致问题。(我没有指向当前手头的那些帖子的链接。)
因为我最近购买了 VS 2012 Professional,所以我卸载了 VS 2012 的试用版,然后从 MSDN 网站重新下载了一个付费版 VS 2012(Professional)。总而言之,卸载/重新安装需要 2 个小时左右。
在重新安装 VS 2012 期间,我非常注意所有可能的选项,看看是否有任何选项可能导致 VS 2012 安装程序“跳过”VS 2012 头文件或其他 VS 2012 组件,并使用 VS 2010 组件反而。我找不到这样的选择。
重新安装 VS 2012 成功。
我在新的工作区中创建了一个新的控制台项目(请注意,尽管卸载/重新安装,我的“最近的项目列表”仍然显示我最近的 VS 2012 项目)。新控制台项目的项目设置显示正在使用正确的工具集 - Platform Toolset
= Visual Studio 2012 (v110)
。
不幸的是,构建开箱即用的 VS 2012 控制台应用程序(包括预编译头选项,但在创建项目向导中没有其他选项)会导致完全相同的错误:
无法打开包含文件:“SDKDDKVer.h”:没有这样的文件或目录
我应该怎么办?
.
附录:给未来读者的注意事项;更改路径设置后(请参阅下面答案下方的注释)以便 VS 2012 找到 SDKDDKVer.h,但它仍然无法找到 stdio.h,这是一个更严重的问题,因为 VC11 版本的 stdio.h(以及所有 VC11 CRT headers)在任何地方的机器上都不可用。
不幸的是,微软在他们的 VS 2012 安装过程中仍然没有解决这些主要错误。我发现获得包括所有 VC11 CRT 文件的有效 VS 2012 安装的唯一方法是:
- 彻底清除您的系统中的所有 MS 产品(这可能有点矫枉过正,但除了卸载 VS 2012 之外,我还必须至少卸载 VS 2010)
- 删除以下答案的评论中提到的注册表项(为了安全起见)
- 删除残留目录(为了安全起见)
- 重启(为了安全起见)
- 从头开始安装 VS 2012 从.ISO,而不是安装程序(假设安装文件是从 MSDN 站点下载的)(使用像 Power2Go 这样的程序来安装 .iso)
- 然后,请务必安装 VS 2012 Service Pack 1(通过“Windows Update”控制面板)(不执行此步骤,VC11 CRT 头文件仍然没有安装在机器上的任何位置)
- 最后,按照 [此链接] 中的描述映射 Windows SDK 库目录(链接现在指向诈骗站点,已删除)(如果不执行后面的步骤,链接器将无法找到 Windows 内核库的路径)
...然后有一个 VS 2012 的工作安装。
非常感谢,微软。