我曾经在我的C ++应用程序中使用Windows 8.1 SDK,一切正常。今天我安装了Windows 10 SDK,但我找不到将其作为默认方法的方法。
我可以在Visual Studio项目设置中对新的SDK路径进行硬编码,但这是非常不受欢迎的。我希望默认情况下为每个新项目使用新工具包。 SDK没有环境变量,我也无法在注册表中找到任何内容 更确切地说,注册表中有Windows SDK条目,但我需要的东西--C ++包含和库 - 被称为Windows Kit (位于C:\ Program Files(x86)\ Windows Kits中)
答案 0 :(得分:1)
好吧,似乎没有很多人遇到这个问题,但是我仍然会发布一种解决方法来设置默认的SDK版本。它与Visual Studio 2017社区一起使用。 请考虑以下情况:
您已经有了一些项目的解决方案,您不能重新定位
您早先在PC上安装了较旧的VS
打开解决方案时,由于使用Windows SDK 10时,由于某种原因,VS将SDK版本设置为8.1
当您尝试构建时,您将具有以下内容:
错误MSB8036找不到Windows SDK版本8.1。安装 Windows SDK的必需版本,或在Windows中更改SDK版本 项目属性页或通过右键单击解决方案并选择 “重新定位解决方案”。
由于未在您的PC上正确安装SDK 8.1,因此以某种方式重新安装它并不能解决问题。
因此,显然,安装了多个SDK的MS构建系统有些混乱,最糟糕的部分是它导致将已损坏安装的SDK定义为默认的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>
现在重新打开您的解决方案并尝试构建它。应该工作正常。
答案 1 :(得分:0)
我的第一个故障排除技巧是卸载所有拥有的Visual Studio东西,然后重新启动。然后安装最新版本的Visual Studio。然后,通过Visual Studio安装程序向导安装所需的任何其他SDK。如果需要安装Visual Studio 2015和2019,请在安装2019之前继续安装2015。
如果要更改项目模板,实际上可以执行此操作。默认模板的文件夹在这里:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\ProjectTemplates\VC\WindowsDesktop\
假设您要修改ConsoleApplication模板。创建一个新项目,在这个新项目中,将项目属性“ SDK version”编辑为8.1。保存项目,然后转到“项目”->“导出模板”。导出模板。这将是Documents \ Visual Studio 2019 \ My Exported Templates中的一个zip文件。解压缩它。
您会发现此文件夹中的.vstemplate文件与上面的目录中的文件相似。您将在节点中看到它将引用.vcxproj文件。在此.vcxproj文件中,您将找到属性:
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
因此,为了修改默认模板以匹配刚导出的模板,您需要从“我的导出的模板”文件中添加必要的文件和行XML,并覆盖“程序文件”中的默认设置。每次更新VS tho时,这些值可能会被覆盖。
或者仅提取导出到文件夹的模板的zip文件:
ProjectTemplates \ VC \ WindowsDesktop \
重新加载Visual Studio后,您将在模板中找到它