这里的开发人员安装了不同的 SDK,我希望我的 Visual Studio 项目使用任何大于 10.0 的可用 SDK,而无需具体指定哪一个。有没有办法做到这一点?
在 vcxproj 文件中:
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
这里的开发人员安装了不同的 SDK,我希望我的 Visual Studio 项目使用任何大于 10.0 的可用 SDK,而无需具体指定哪一个。有没有办法做到这一点?
在 vcxproj 文件中:
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
对于 Visual Studio 2017,您必须在 vcxproj 文件中使用特定的 SDK 版本号。但是,Antonio Sanchez 在这篇文章的评论中为 Windows 10 SDK 提供了一种解决方法:https ://developercommunity.visualstudio.com/comments/190992/view.html
<PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'==''">
<!-- Latest Target Version property -->
<LatestTargetPlatformVersion>
$([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))
</LatestTargetPlatformVersion>
<WindowsTargetPlatformVersion Condition="'$(WindowsTargetPlatformVersion)' == ''">
$(LatestTargetPlatformVersion)
</WindowsTargetPlatformVersion>
<TargetPlatformVersion>
$(WindowsTargetPlatformVersion)
</TargetPlatformVersion>
</PropertyGroup>
对于 Visual Studio 2019,您可以使用值 10.0 指定最新版本的 Windows 10 SDK。例如:
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
当前的设计要求您的 vcxproj 包含特定的版本号。
由于您的项目适用于 VS 2017(基于v141
平台工具集),因此没有理由使用 15086 这么古老的东西。如果有人今天安装了 VS 2017 的新副本(15.9 更新),他们将拥有 Windows 10 SDK(10.0 .17763) 默认情况下。他们唯一会默认安装 10.0.15806 的情况是他们安装了 VS 2017(15.1 更新)并且从未更新过。
在 vcxproj 中坚持使用较旧的 Windows 10 SDK 唯一有意义的是 VS 2015 项目,因为 10.0.14493 是最后一个正式支持 VS 2015 的版本。
另请记住,对于 Win32 桌面应用程序,Windows 10 SDK (17763) 仍然针对与 Windows 10 SDK (15086) 相同的 Windows 版本:Windows 7 SP1、Windows 8.x、Windows 10。