1.可能的报错原因
在重新安装VS2022后,打开之前的项目文件,VS2022突然就报出“无法识别到Windows.h文件”等一系列的错误提示。于是我打开项目的包含目录(项目->属性->VC++目录->包含目录),似乎找到了问题所在:
如图可见,VS2022从内部环境变量$(WindowsSDK_IncludePath)继承的部分路径并不完整,而且在手动补全对应路径后报错信息确实都消失了。
但是以后每次都要手动加路径可太麻烦了,而且这本来就应该是VS2022自己干的事情,于是就想怎么才能彻底解决这个问题。VS2022并没有提供类似于全局设置一样的功能(就这点上感觉值得吐槽),而且这些预设变量是通过Visual Studio 的安装和配置文件自动设置的的,所以无法方便地修改$(WindowsSDK_IncludePath)的值。后来也尝试过在注册表(Win+R 查找regedit)中寻找可行的修改方法,但最终无功而返。
在最后打算摆烂的时候,运行项目却发现出现了新的问题,程序报错“找不到 Windows SDK 版本 10.0.22621.0”。后来在多次上网查找方法和尝试下,找到了解决方法:
2.解决方案
(1)首先找到对应版本SDK的UAP.props文件
(2)以管理员身份修改文件,补全以下内容 ( Condition="'$(WindowsSdkDir)' == ''" )
这样修改之后,预设变量就会加上缺失的路径了,同时找不到对应SDK版本的报错信息也消失了。