如何在Visual Studio c ++项目中指定“大于10.0的任何Windows SDK版本”?

时间:2019-01-10 17:51:32

标签: windows visual-studio visual-c++ sdk vcxproj

这里的开发人员安装了不同的SDK,我希望我的Visual Studio项目使用大于10.0的任何可用SDK,而无需确切指定哪个SDK。有办法吗?

enter image description here

在vcxproj文件中:

<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>

2 个答案:

答案 0 :(得分:1)

对于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>

答案 1 :(得分:0)

当前设计要求您的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。