Delen via


Ingebouwde ondersteuning voor WinRT wordt verwijderd uit .NET

Ingebouwde ondersteuning voor het verbruik van WinRT-API's (Windows Runtime) in .NET wordt verwijderd.

Versie geïntroduceerd

5,0

Wijzigingsbeschrijving

Voorheen kon CoreCLR Windows-metagegevensbestanden (WinMD) gebruiken om WinRT-typen te activeren en te gebruiken. Vanaf .NET 5 kan CoreCLR WinMD-bestanden niet meer rechtstreeks verbruiken.

Als u probeert te verwijzen naar een niet-ondersteunde assembly, krijgt u een FileNotFoundException. Als u een WinRT-klasse activeert, krijgt u een PlatformNotSupportedException.

Deze belangrijke wijziging is om de volgende redenen aangebracht:

  • WinRT kan dus afzonderlijk van de .NET-runtime worden ontwikkeld en verbeterd.
  • Voor symmetrie met interoperabiliteitssystemen die zijn opgegeven voor andere besturingssystemen, zoals iOS en Android.
  • Als u wilt profiteren van andere .NET-functies, zoals C#-functies, tussenliggende taal (IL) bijsnijden en vooraf (AOT) compilatie.
  • Ter vereenvoudiging van de .NET-runtimecodebase.
  • Verwijder verwijzingen naar het pakket Microsoft.Windows.SDK.Contracts. Geef in plaats daarvan de versie op van de Windows-API's die u wilt openen via de TargetFramework eigenschap van het project. Voorbeeld:

    <TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>
    
  • Als u een runtimeonderdeel van derden gebruikt dat is gedefinieerd in een WINMD-bestand , voegt u een verwijzing toe naar het Microsoft.Windows.CsWinRT NuGet-pakket. Zie de C#/WinRT-documentatie voor informatie over het genereren van de C#-projectie.

Zie Windows Runtime-API's aanroepen in desktop-apps voor meer informatie.

Betrokken API's