Partilhar via


FrameworkReference substituído por WindowsSdkPackageVersion para Windows SDK

A partir do .NET 5.0.8 (que inclui o .NET SDK 5.0.302 e o .NET SDK 5.0.205), os desenvolvedores que visam o Windows não podem usar o item FrameworkReference para alterar a versão do pacote de destino do Windows SDK. A propriedade WindowsSdkPackageVersion substitui essa funcionalidade.

Observação

Não recomendamos substituir a versão do SDK do Windows, porque os pacotes de direcionamento do SDK do Windows estão incluídos no SDK do .NET 5+. Em vez disso, para fazer referência ao pacote mais recente do SDK do Windows, atualize sua versão do SDK do .NET.

Versão introduzida

SDK do .NET 5.0.302, SDK do .NET 5.0.205

Comportamento anterior

Os desenvolvedores podem usar o item FrameworkReference para substituir a versão do pacote SDK do Windows em aplicativos .NET 5. Por exemplo:

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

Novo comportamento

A propriedade WindowsSdkPackageVersion substitui o comportamento da substituição de FrameworkReference. Por exemplo:

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

Categoria de alteração

Essa alteração pode afetar compatibilidade da fonte.

Motivo da mudança

Essa alteração foi introduzida para simplificar o comportamento de substituição de pacote para direcionar os pacotes SDK do Windows produzidos pelo C#/WinRT.

Remova qualquer uso de FrameworkReference no ficheiro de projeto do seu aplicativo .NET 5 ou superior ao direcionar-se para o SDK do Windows.

Ao trabalhar com o SDK de Aplicativos Windows, talvez seja necessário adicionar explicitamente a propriedade WindowsSdkPackageVersion se a versão necessária do pacote SDK do Windows não puder ser resolvida pelo SDK do .NET. Esse problema pode surgir devido a diferentes mecanismos de lançamento para o SDK de aplicativo do Windows e SDK do .NET, onde o SDK do .NET é enviado através do Visual Studio. Veja os detalhes nesta questão do GitHub . Você também pode considerar remover a propriedade WindowsSdkPackageVersion assim que a versão necessária do pacote SDK do Windows tiver sido resolvida pelo SDK do .NET, garantindo que você tenha o pacote SDK do Windows mais recente. Isso normalmente acontece depois que o Visual Studio lança uma nova versão e você atualiza para essa versão.

APIs afetadas

APIs do Windows fornecidas pelo pacote de destino SDK do Windowsno .NET 5 e em versões posteriores.