Freigeben über


Die integrierte Unterstützung für WinRT wird aus .NET entfernt.

Integrierte Unterstützung für die Nutzung von Windows-Runtime-APIs (WinRT) in .NET wird entfernt.

Eingeführte Version

5.0

Änderungsbeschreibung

Zuvor konnte CoreCLR Windows-Metadatendateien (WinMD) verwenden, um WinRT-Typen zu aktivieren und zu nutzen. Ab .NET 5 kann CoreCLR WinMD-Dateien nicht mehr direkt nutzen.

Wenn Sie versuchen, auf eine nicht unterstützte Assembly zu verweisen, erhalten Sie eine FileNotFoundException. Wenn Sie eine WinRT-Klasse aktivieren, wird eine PlatformNotSupportedException zurückgegeben.

Diese einschneidende Änderung wurde aus den folgenden Gründen vorgenommen:

  • Daher kann WinRT separat von der .NET-Runtime entwickelt und verbessert werden.
  • Außerdem dient dies der Symmetrie mit Interopsystemen, die für andere Betriebssysteme wie iOS und Android bereitgestellt werden.
  • Um die Vorteile anderer .NET-Funktionen wie C#-Funktionen, das Kürzen der Zwischensprache (IL) und die Ahead-of-Time (AOT)-Kompilierung zu nutzen.
  • Um die .NET-Laufzeitcodebasis zu vereinfachen.
  • Entfernen Sie Verweise auf das Microsoft.Windows.SDK.Contracts-Paket. Geben Sie stattdessen die Version der Windows-APIs an, auf die Sie über die TargetFramework Eigenschaft des Projekts zugreifen möchten. Beispiel:

    <TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>
    
  • Wenn Sie eine Drittanbieter-Laufzeitkomponente verwenden, die in einer WINMD-Datei definiert ist, fügen Sie einen Verweis auf das Microsoft.Windows.CsWinRT NuGet-Paket hinzu. Informationen zum Generieren der C#-Projektion finden Sie in der C#/WinRT-Dokumentation .

Weitere Informationen finden Sie unter Aufrufen von Windows-Runtime-APIs in Desktop-Apps.

Betroffene APIs