Atribut OSPlatform diganti namanya atau dihapus
Atribut berikut yang diperkenalkan di .NET 5 Pratinjau 8 telah dihapus atau diganti namanya: MinimumOSPlatformAttribute
, , RemovedInOSPlatformAttribute
dan ObsoletedInOSPlatformAttribute
.
Deskripsi perubahan
.NET 5 Pratinjau 8 memperkenalkan atribut berikut di System.Runtime.Versioning namespace:
MinimumOSPlatformAttribute
RemovedInOSPlatformAttribute
ObsoletedInOSPlatformAttribute
Di .NET 5 Pratinjau 8, ketika proyek menargetkan rasa khusus OS .NET 5 dengan menggunakan moniker kerangka kerja target seperti net5.0-windows
, build menambahkan atribut tingkat System.Runtime.Versioning.MinimumOSPlatformAttribute
perakitan.
Di .NET 5 RC1, ObsoletedInOSPlatformAttribute
telah dihapus, dan MinimumOSPlatformAttribute
RemovedInOSPlatformAttribute
telah diganti namanya sebagai berikut:
Pratinjau 8 nama | RC1 dan nama yang lebih baru |
---|---|
MinimumOSPlatformAttribute |
SupportedOSPlatformAttribute |
RemovedInOSPlatformAttribute |
UnsupportedOSPlatformAttribute |
Di .NET 5 RC1 dan yang lebih baru, ketika proyek menargetkan rasa khusus OS .NET 5 dengan menggunakan moniker kerangka kerja target seperti net5.0-windows
, build menambahkan atribut tingkat SupportedOSPlatformAttribute perakitan.
Alasan untuk berubah
.NET 5 Pratinjau 8 memperkenalkan atribut untuk System.Runtime.Versioning menentukan platform yang didukung untuk API. Atribut dikonsumsi oleh penganalisis kompatibilitas Platform untuk menghasilkan peringatan build saat API khusus platform digunakan pada platform yang tidak mendukung API tersebut.
Untuk .NET 5 RC1, fitur tambahan ditambahkan ke penganalisis kompatibilitas platform untuk pengecualian platform. Fitur ini memungkinkan API ditandai sebagai sepenuhnya tidak didukung pada platform OS. Fitur tersebut meminta perubahan pada atribut, termasuk menggunakan nama yang lebih cocok. ObsoletedInOSPlatformAttribute
dihapus karena tidak lagi diperlukan.
Versi yang diperkenalkan
5.0 RC1
Tindakan yang direkomendasikan
Saat Anda menargetkan ulang proyek dari Pratinjau .NET 5 8 ke .NET 5 RC1, Anda mungkin mengalami kesalahan build atau run-time karena perubahan ini. Misalnya, penggantian MinimumOSPlatformAttribute
nama kemungkinan akan menghasilkan kesalahan, karena atribut diterapkan ke rakitan khusus platform pada waktu build, dan artefak build lama masih akan mereferensikan nama API lama.
Contoh kesalahan build-time:
- kesalahan CS0246: Jenis atau nama namespace layanan 'MinimumOSPlatformAttribute' tidak dapat ditemukan (apakah Anda kehilangan referensi menggunakan direktif atau perakitan?)
- kesalahan CS0246: Nama jenis atau namespace layanan 'RemovedInOSPlatformAttribute' tidak dapat ditemukan (apakah Anda kehilangan referensi menggunakan direktif atau rakitan?)
- kesalahan CS0246: Nama jenis atau namespace layanan 'ObsoletedInOSPlatformAttribute' tidak dapat ditemukan (apakah Anda kehilangan menggunakan direktif atau referensi rakitan?)
Contoh kesalahan run-time:
Pengecualian tidak dapat ditangani. System.TypeLoadException: Tidak dapat memuat tipe 'System.Runtime.Versioning.MinimumOSPlatformAttribute' dari assembly 'System.Runtime, Version=5.0.0.0, Culture=netral, PublicKeyToken=b03f5f7f11d50a3a'.
Untuk mengatasi kesalahan ini:
- Perbarui referensi apa pun dari
MinimumOSPlatformAttribute
ke SupportedOSPlatformAttribute. - Perbarui referensi apa pun dari
RemovedInOSPlatformAttribute
ke UnsupportedOSPlatformAttribute. - Hapus referensi apa pun ke
ObsoletedInOSPlatformAttribute
. - Bangun kembali proyek Anda (atau lakukan clean + build) untuk menghapus artefak build lama.
API yang Terpengaruh
System.Runtime.Versioning.MinimumOSPlatformAttribute
System.Runtime.Versioning.ObsoletedInOSPlatformAttribute
System.Runtime.Versioning.RemovedInOSPlatformAttribute