【发布时间】:2013-04-05 23:36:09
【问题描述】:
我已经在我的 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(专业版)。总而言之,卸载/重新安装需要 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':没有这样的文件或目录
我该怎么办?
.
附录:未来读者的注意事项;更改路径设置后(请参阅下面答案下方的 cmets)以便 VS 2012 找到 SDKDDKVer.h,但它仍然无法找到 stdio.h,这是一个更严重的问题,因为 stdio.h 的 VC11 版本(以及所有 VC11 CRT headers) 在任何地方的机器上都不可用。
不幸的是,微软在他们的 VS 2012 安装过程中仍然没有解决这些主要错误。我发现获得包括所有 VC11 CRT 文件的有效 VS 2012 安装的唯一方法是:
- 彻底清除系统中的所有 MS 产品(这可能有点矫枉过正,但我必须在卸载 VS 2012 的同时至少卸载 VS 2010)
- 将 cmets 中记录的注册表项删除到下面的答案中(为了安全起见)
- 删除剩余目录(安全起见)
- 重启(为了安全起见)
- 从头开始安装 VS 2012从 .ISO,而不是安装程序(假设安装文件是从 MSDN 站点下载的)(使用 Power2Go 之类的程序来安装 .iso)
- 那么,请务必安装 VS 2012 Service Pack 1(通过“Windows Update”控制面板)(不执行此步骤,VC11 CRT 头文件仍然没有安装在机器上的任何位置)
- 最后,按照 [此链接] 中的描述映射 Windows SDK 库目录(链接现在指向诈骗网站,已删除)(如果不执行后面的步骤,链接器将无法找到 Windows 内核库的路径)
... 那么有一个 VS 2012 的工作安装。
非常感谢,微软。
【问题讨论】:
标签: c++ visual-c++ visual-studio-2012