FrameworkReference 替换为适用于 Windows SDK 的 WindowsSdkPackageVersion

从 .NET 5.0.8(包括 .NET SDK 5.0.302 和 .NET SDK 5.0.205)开始,面向 Windows 的开发人员不能使用 FrameworkReference 项来替代其 Windows SDK 面向包的版本。 WindowsSdkPackageVersion 属性取代了此功能。

注意

不建议替代 Windows SDK 版本,因为 .NET 5+SDK 中包含 Windows SDK 目标包。 若要引用最新的 Windows SDK 包,请更新 .NET SDK 的版本。

引入的版本

.NET SDK 5.0.302、.NET SDK 5.0.205

旧行为

开发人员可以使用 FrameworkReference 项替代 .NET 5 应用程序中的 Windows SDK 包版本。 例如:

<ItemGroup>
  <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" RuntimeFrameworkVersion="10.0.19041.18" />
  <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" TargetingPackVersion="10.0.19041.18" />
</ItemGroup>

新行为

WindowsSdkPackageVersion 属性取代了 FrameworkReference 替代的行为。 例如:

<PropertyGroup>
  <WindowsSdkPackageVersion>10.0.19041.18</WindowsSdkPackageVersion>
</PropertyGroup>

更改类别

此更改可能会影响源兼容性

更改原因

引入此更改是为了简化面向 C#/WinRT 生成的 Windows SDK 包的包替代行为。

面向 Windows SDK 时,请删除 .NET 5+ 应用项目文件中对 FrameworkReference 的任何使用。

受影响的 API

Windows SDK 目标包提供的 .NET 5 和更高版本中的 Windows API。