[英]How to set the default Windows kit (SDK) version?
我曾经为我的 C++ 应用程序使用 Windows 8.1 SDK,一切正常。 今天我安装了 Windows 10 SDK,但找不到将其设置为默认 SDK 的方法。
我可以在 Visual Studio 项目设置中对新的 SDK 路径进行硬编码,但这是非常不可取的。 我希望每个新项目默认使用新工具包。 SDK 没有环境变量,我在注册表中也找不到任何内容。
更准确地说,注册表中有 Windows SDK 条目,但我需要的 - C++ 包含和库 - 称为 Windows工具包(位于 C:\Program Files (x86)\Windows Kits)。
好吧,似乎没有多少人遇到这个问题,但我仍然会发布一个解决方法来设置默认的 sdk 版本。 它适用于 Visual Studio 2017 社区。 考虑以下情况:
你有一个项目的解决方案,你不能重新定位
您之前在 PC 上安装了较旧的 VS
当您打开解决方案时,VS 出于某种原因将 SDK 版本设置为 8.1,而您使用的是 Windows SDK 10
当您尝试构建时,您会遇到以下情况:
错误 MSB8036 找不到 Windows SDK 版本 8.1。 安装所需版本的 Windows SDK 或在项目属性页中更改 SDK 版本,或右键单击解决方案并选择“重新定位解决方案”。
因为 SDK 8.1 没有在您的 PC 上正确安装,并且以某种方式重新安装它并不能解决问题。
因此,很明显,安装了多个 SDK 的 MS 构建系统存在某种混乱,最糟糕的部分是它导致将损坏安装的 SDK 定义为默认值。 我使用以下解决方法来显式设置默认 Windows SDK:
C:\Program Files (x86)\Microsoft Visual Studio\2017\WDExpress\Common7\IDE\VC\VCTargets\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>
现在重新打开您的解决方案并尝试构建它。 应该工作正常。
我的第一个故障排除技巧是卸载您拥有的所有 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 文件与上述目录中的文件类似。 您将在节点中看到它将引用 a.vcxproj 文件。 在 this.vcxproj 文件中,您将找到以下属性:
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
因此,为了修改默认模板以匹配您刚刚导出的模板,您需要从我的导出模板文件中添加必要的文件和行 XML,并覆盖程序文件中的默认值。 每次更新 VS 时,这些可能都会被覆盖。
或者,只需将导出的模板的 zip 文件解压缩到文件夹中:
ProjectTemplates\VC\WindowsDesktop\
重新加载 visual studio 后,您会在模板中找到它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.