9

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

在此处输入图像描述

在 vcxproj 文件中:

<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
4

2 回答 2

10

对于 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>
于 2019-10-16T19:17:06.800 回答
3

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

于 2019-01-10T18:24:57.190 回答