今天接手一台之前装过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