VS2019解决MSB8036 找不到 Windows SDK 版本 10.0.19041.0

今天接手一台之前装过Visual Studio 2019的电脑,明明安装了Windows SDK,但就是提示找不到:

MSB8036 找不到 Windows SDK 版本 10.0.19041.0。请安装所需版本的 Windows SDK,或者在项目属性页中或通过右键单击解决方案并选择“重定解决方案目标”来更改 SDK 版本。 D:\darknet\build\darknet\darknet.vcxproj D:\Program Files\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.Cpp.WindowsSDK.targets 46

原因:

VS确定SDK是通过一个sdkmanifest.xml来找的,以前的SDK版本这个文件都是在windows sdk根目录下,

我这里可能是这台机器同时装了VS2017的原因。

而新版本的这个文件在SDK根目录是找不到的,所以需要增加一下条件,不要在根目录下找,指定SDK目录为当前目录即可。

解决办法:

1、找到UAP.props文件,路径在:

“SDK根目录\DesignTime\CommonConfiguration\Neutral\UAP\10.0.19041.0\”

像我的SDK根目录在D:\Windows Kits\10,全路径就是

“D:\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\10.0.19041.0”

其他版本的SDK应该也是一样,将版本号替换就好。

1、打开UAP.props文件,找到第5行:


<Project xmlns=”http://schemas.microsoft.com/developer/msbuild/2003″>

  <PropertyGroup>
     <!– Force WindowsSdkDir to always be a parent to this props file –>
     <WindowsSdkDir>$([MSBUILD]::GetDirectoryNameOfFileAbove(‘$(MSBUILDTHISFILEDIRECTORY)’, ‘sdkmanifest.xml’))\</WindowsSdkDir>

将第五行修改为:

<WindowsSdkDir Condition=”‘$(WindowsSdkDir)’ == ””>$([MSBUILD]::GetDirectoryNameOfFileAbove(‘$(MSBUILDTHISFILEDIRECTORY)’, ‘sdkmanifest.xml’))\</WindowsSdkDir>

然后重启VS即可!



郑重声明:
除特别声明为转载内容外,本站所有内容均为作者原创,谢绝任何单位和个人不经许可的复制和转播!
对于确有转载需要的,请先与作者联系,在获得允许后烦请在转载时保留文章出处。
本文出自Lupin's Blog:http://www.cnzui.com/archives/1271