Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Empfohlene Aktion
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.