如何设置默认的Windows kit (SDK)版本?

13

我以前在我的C++应用程序中使用Windows 8.1 SDK,一切都运作良好。今天我安装了Windows 10 SDK,但我找不到一种将其设置为默认SDK的方法。

我可以在Visual Studio项目设置中硬编码新的SDK路径,但这是极不理想的。我希望每个新项目都默认使用新工具包。
没有针对SDK的环境变量,而且我也找不到注册表中的任何信息。更准确地说,在注册表中有Windows SDK条目,但是我需要的C++包括和库被称为Windows Kit(位于C:\Program Files (x86)\Windows Kits)。


你尝试过在“项目”>“属性”>“常规”>“平台工具集”中设置吗? - mikedu95
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - mikedu95
3
@mikedu95,请不要在SO上使用URL缩短服务。请发布实际的URL,以便人们知道他们要去哪里,并删除可能会被黑客攻击的“跳板”。许多雇主会封锁URL缩短器,从而使链接失效。这已经在Meta上讨论过了。对于其他人,Mike发布的URL简化为:https://msdn.microsoft.com/en-us/library/ff660764(v=vs.100).aspx - enhzflep
@mikedu95 - 在这里查看帖子:http://meta.stackoverflow.com/questions/313621/blacklist-the-use-of-common-link-shorteners-in-posts/313766#313766 - enhzflep
3
如果你遇到了安装问题,最好现在就割腕结束痛苦。最简单的解释是你没有设置项目的“常规”>“目标平台版本”属性。默认为8.1,组合框至少应该显示10.0.10240.0或10.0.10586.0。改变这个默认值,别想了。 - Hans Passant
显示剩余9条评论
2个回答

3

好的,似乎没有很多人面对这个问题,但我仍然会发布一个解决方法来设置默认的SDK版本。这适用于Visual Studio 2017 Community。

  • 考虑以下情况:

  • 您有一个解决方案,其中包含不得重新定位的项目

  • 您在电脑上之前安装了旧版的VS

  • 当您打开解决方案时,由于某种原因,VS将SDK版本设置为8.1,而您使用的是Windows SDK 10

  • 尝试构建时,您会遇到以下问题:

错误 MSB8036:找不到 Windows SDK 版本8.1。安装所需的 Windows SDK 版本,或通过右键单击解决方案并选择“重新定向解决方案”在 项目属性页中更改 SDK 版本。

因为在您的电脑上未正确安装SDK 8.1,并且重新安装它也无法解决问题。

  • 其他团队成员没有此类问题,因为项目没有在 *.vcxproj 文件中显式定义Windows SDK版本。

显然,具有多个已安装的SDK的MS构建系统存在某种混淆,最糟糕的是它将导致将安装不良的SDK定义为您的默认值。我使用以下解决方法来显式设置默认的Windows SDK:

  • 转到 [VS安装路径]\Common7\IDE\VC\VCTargets,例如:

C:\Program Files (x86)\Microsoft Visual Studio\2017\WDExpress\Common7\IDE\VC\VCTargets\Microsoft.Cpp.WindowsSDK.props

  • 以管理员身份打开文件Microsoft.Cpp.WindowsSDK.props
  • 找到以下行:
    <DefaultWindowsSDKVersion Condition="'$(DefaultWindowsSDKVersion)' == ''
    and '$(AppContainerApplication)' != 'true'">8.1</DefaultWindowsSDKVersion>

将8.1更改为你确保已正确安装的SDK版本,然后保存文件。 在我的情况下,它是10.0.17763.0,所以最终行是

    <DefaultWindowsSDKVersion Condition="'$(DefaultWindowsSDKVersion)' == ''
    and '$(AppContainerApplication)' != 'true'">10.0.17763.0</DefaultWindowsSDKVersion>

现在重新打开您的解决方案并尝试构建它。应该可以正常工作。


1
我的第一个解决方案是卸载所有的Visual Studio相关内容,然后重新启动。然后安装最新版本的Visual Studio。然后通过Visual Studio安装程序向导安装所需的任何其他SDK。如果您需要安装Visual Studio 2015和2019,请先安装2015再安装2019。
如果您想更改项目模板,实际上可以这样做。默认模板的文件夹在这里:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\ProjectTemplates\VC\WindowsDesktop\

假设您想修改ConsoleApplication模板。创建一个新项目,在此新项目中将“SDK版本”项目属性编辑为8.1。保存该项目,然后转到“项目”->“导出模板”。导出模板。它将成为Documents\Visual Studio 2019\My Exported Templates中的一个zip文件。解压它。
您将注意到此文件夹中的.vstemplate文件与上面目录中的文件相似。您会在节点中看到一个引用.vcxproj文件的链接。在这个.vcxproj文件中,您将找到以下属性:
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>

因此,为了修改默认模板以匹配您刚刚导出的模板,您需要从“我的导出模板”文件中添加必要的文件和XML行,并覆盖Program Files中的默认文件。但这些可能会在每次更新VS时被覆盖。
或者,只需将导出的zip文件提取到以下文件夹中:
ProjectTemplates\VC\WindowsDesktop\
然后重新加载Visual Studio后,在您的模板中找到它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接