Bagikan melalui


Dukungan bawaan untuk WinRT dihapus dari .NET

Dukungan bawaan untuk konsumsi API runtime Windows (WinRT) di .NET dihapus.

Versi yang diperkenalkan

5.0

Deskripsi perubahan

Sebelumnya, CoreCLR dapat menggunakan file metadata Windows (WinMD) untuk aktif dan menggunakan jenis WinRT. Mulai dari .NET 5, CoreCLR tidak dapat lagi menggunakan file WinMD secara langsung.

Jika Anda mencoba mereferensikan rakitan yang tidak didukung, Anda akan mendapatkan FileNotFoundException. Jika Anda mengaktifkan kelas WinRT, Anda akan mendapatkan PlatformNotSupportedException.

Perubahan yang melanggar ini dilakukan karena alasan berikut:

  • Jadi WinRT dapat dikembangkan dan ditingkatkan secara terpisah dari runtime .NET.
  • Untuk simetri dengan sistem interop yang disediakan untuk sistem operasi lain, seperti iOS dan Android.
  • Untuk memanfaatkan fitur .NET lainnya, seperti fitur C#, pemangkasan bahasa perantara (IL), dan kompilasi ahead-of-time (AOT).
  • Untuk menyederhanakan basis kode runtime .NET.
  • Hapus referensi ke paket Microsoft.Windows.SDK.Contracts. Sebagai gantinya, tentukan versi API Windows yang ingin Anda akses melalui TargetFramework properti proyek. Misalnya:

    <TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>
    
  • Jika Anda menggunakan komponen runtime pihak ketiga yang ditentukan dalam file .winmd , tambahkan referensi ke paket NuGet Microsoft.Windows.CsWinRT. Untuk informasi tentang cara menghasilkan proyeksi C#, lihat dokumentasi C#/WinRT .

Untuk informasi selengkapnya, lihat Memanggil WINDOWS Runtime API di aplikasi desktop.

API yang Terpengaruh