Freigeben über


FrameworkReference ersetzt durch WindowsSdkPackageVersion für Windows SDK

Ab .NET 5.0.8 (einschließlich .NET SDK 5.0.302 und .NET SDK 5.0.205) können Entwickler, die auf Windows abzielen, das FrameworkReference Element nicht verwenden, um ihre Version des Windows SDK-Zielpakets außer Kraft zu setzen. Die WindowsSdkPackageVersion Eigenschaft ersetzt diese Funktionalität.

Hinweis

Sie sollten die Windows SDK-Version nicht überschreiben, da die Windows SDK-Zielpakete im .NET 5+ SDK enthalten sind. Aktualisieren Sie stattdessen Ihre Version des .NET SDK, um auf das aktuelle Windows SDK-Paket zu verweisen.

Eingeführte Version

.NET SDK 5.0.302, .NET SDK 5.0.205

Vorheriges Verhalten

Entwickler können das FrameworkReference Element verwenden, um die Windows SDK-Paketversion in .NET 5-Anwendungen außer Kraft zu setzen. Beispiel:

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

Neues Verhalten

Die WindowsSdkPackageVersion-Eigenschaft ersetzt das Verhalten der FrameworkReference-Überschreibung. Beispiel:

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

Kategorie der Änderung

Diese Änderung kann sich auf die Quellkompatibilität auswirken.

Grund für Änderung

Diese Änderung wurde eingeführt, um das Überschreibungsverhalten von Paketen für Windows SDK-Pakete zu vereinfachen, die von C#/WinRT erstellt wurden.

Entfernen Sie jede Verwendung von FrameworkReference in der Projektdatei Ihrer .NET 5+-App, wenn Sie das Windows SDK anvisieren.

Wenn Sie mit dem Windows App SDK arbeiten, müssen Sie die WindowsSdkPackageVersion Eigenschaft möglicherweise explizit hinzufügen, wenn die erforderliche Windows SDK-Paketversion nicht durch .NET SDK aufgelöst werden kann. Dieses Problem kann aufgrund verschiedener Releasemechanismen für das Windows App SDK und .NET SDK auftreten, bei dem das .NET SDK über Visual Studio ausgeliefert wird. Details finden Sie in diesem GitHub Issue. Sie können auch erwägen, die WindowsSdkPackageVersion Eigenschaft zu entfernen, nachdem die erforderliche Windows SDK-Paketversion durch .NET SDK aufgelöst wurde, um sicherzustellen, dass Sie über das neueste Windows SDK-Paket verfügen. Dies geschieht in der Regel, nachdem Visual Studio eine neue Version veröffentlicht hat und Sie auf diese Version aktualisiert haben.

Betroffene APIs

Windows-APIs in .NET 5 und höheren Versionen, die vom Windows SDK-Zielpaket bereitgestellt werden.