Compartir a través de


FrameworkReference reemplazado por WindowsSdkPackageVersion para Windows SDK

A partir de .NET 5.0.8 (que incluye el SDK de .NET 5.0.302 y el SDK de .NET 5.0.205), los desarrolladores que tienen como destino Windows no pueden usar el elemento de FrameworkReference para invalidar su versión del paquete de destino de Windows SDK. La propiedad WindowsSdkPackageVersion reemplaza esta funcionalidad.

Nota

No se recomienda invalidar la versión de Windows SDK, ya que los paquetes de destino de Windows SDK se incluyen con el SDK de .NET 5+. En su lugar, para hacer referencia al paquete más reciente de Windows SDK, actualice la versión del SDK de .NET.

Versión introducida

SDK de .NET 5.0.302, SDK de .NET 5.0.205

Comportamiento anterior

Los desarrolladores podrían usar el elemento FrameworkReference para invalidar la versión del paquete de Windows SDK en aplicaciones de .NET 5. Por ejemplo:

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

Nuevo comportamiento

La propiedad WindowsSdkPackageVersion reemplaza el comportamiento de la invalidación de FrameworkReference. Por ejemplo:

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

Categoría de cambio

Este cambio puede afectar a la compatibilidad de origen.

Motivo del cambio

Este cambio se introdujo para simplificar el comportamiento de invalidación de paquetes para dirigirse a los paquetes de Windows SDK generados por C#/WinRT.

Quite cualquier uso de FrameworkReference en el archivo de proyecto de la aplicación de .NET 5+ cuando tenga como destino Windows SDK.

Al trabajar con el SDK de aplicaciones de Windows, es posible que tenga que agregar explícitamente la propiedad WindowsSdkPackageVersion si la versión del paquete Windows SDK no puede ser resuelta por el SDK de .NET. Este problema puede surgir debido a distintos mecanismos de versión para el SDK de aplicaciones de Windows y el SDK de .NET, donde el SDK de .NET se envía a través de Visual Studio. Consulte los detalles en este problema de GitHub . También puede considerar quitar la propiedad WindowsSdkPackageVersion una vez que el SDK de .NET haya resuelto la versión necesaria del paquete de Windows SDK, asegurándose de tener el paquete más reciente de Windows SDK. Esto suele ocurrir después de que Visual Studio publique una nueva versión y haya actualizado a esa versión.

APIs afectadas

Las API de Windows en .NET 5 y versiones posteriores que proporciona el paquete de destino de Windows SDK.