Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mulai dari .NET 5, beberapa API yang baru ditandai sebagai usang menggunakan dua properti baru pada ObsoleteAttribute.
- Properti ObsoleteAttribute.DiagnosticId memberi tahu pengkompilasi untuk menghasilkan peringatan build menggunakan ID diagnostik kustom. ID kustom memungkinkan peringatan usang ditekan secara khusus dan terpisah satu sama lain. Dalam kasus kedaluarsa
System*namespace, format untuk ID diagnostik kustom adalahSYSLIB0XXX. Dalam kasus penghapusanMicrosoft.Extensions, format untuk ID diagnostik kustom adalahEXTOBS0XXX. - Properti ObsoleteAttribute.UrlFormat memberi tahu pengkompilasi untuk menyertakan tautan URL untuk mempelajari selengkapnya tentang kedaluwarsa.
Jika Anda mengalami peringatan atau kesalahan build karena penggunaan API usang, ikuti panduan khusus yang disediakan untuk ID diagnostik yang tercantum dalam tabel referensi berikut. Peringatan atau kesalahan terkait keusangan ini tidak bisa ditekan dengan menggunakan ID diagnostik standar (CS0618) untuk tipe atau anggota yang sudah usang; gunakan nilai ID diagnostik kustom SYSLIB0XXX atau EXTOBS0XXX sebagai alternatif. Untuk informasi selengkapnya, lihat Menyembunyikan peringatan.
Tabel berikut ini menyediakan indeks untuk API usang dengan ID diagnostik kustom di .NET 5 dan versi yang lebih baru:
Penghentian SYSLIB
Tabel berikut ini mencantumkan kedaluarsa SYSLIB0XXX di .NET 5+.
| Diagnostik ID | Peringatan atau kesalahan | Deskripsi |
|---|---|---|
| SYSLIB0001 | Peringatan | Pengodean UTF-7 tidak aman dan tidak boleh digunakan. Pertimbangkan untuk menggunakan UTF-8 sebagai gantinya. |
| SYSLIB0002 | Kesalahan | PrincipalPermissionAttribute tidak diakui oleh runtime dan tidak boleh digunakan. |
| SYSLIB0003 | Peringatan | Keamanan akses kode (CAS) tidak didukung atau diterapkan oleh runtime. |
| SYSLIB0004 | Peringatan | Fitur wilayah eksekusi terbatas (CER) tidak didukung. |
| SYSLIB0005 | Peringatan | Cache perakitan global (GAC) tidak didukung. |
| SYSLIB0006 | Peringatan | Thread.Abort() tidak didukung dan memunculkan PlatformNotSupportedException. |
| SYSLIB0007 | Peringatan | Penerapan default dari algoritma kriptografis ini tidak didukung. |
| SYSLIB0008 | Peringatan | API CreatePdbGenerator() tidak didukung dan memunculkan PlatformNotSupportedException. |
| SYSLIB0009 | Peringatan | AuthenticationManager tidak didukung. Metode akan melakukan 'no-op' atau melempar PlatformNotSupportedException. |
| SYSLIB0010 | Peringatan | Beberapa API jarak jauh tidak didukung dan menghasilkan PlatformNotSupportedException. |
| SYSLIB0011 | Peringatan | Serialisasi BinaryFormatter sudah kedaluwarsa dan tidak boleh digunakan. |
| SYSLIB0012 | Peringatan | Assembly.CodeBase dan Assembly.EscapedCodeBase hanya disertakan untuk kompatibilitas .NET Framework. Gunakan Assembly.Location sebagai gantinya. |
| SYSLIB0013 | Peringatan | Uri.EscapeUriString(String) dapat merusak string Uri dalam beberapa kasus. Pertimbangkan untuk menggunakan Uri.EscapeDataString(String) komponen string kueri sebagai gantinya. |
| SYSLIB0014 | Peringatan | WebRequest, HttpWebRequest, ServicePoint, dan WebClient sudah usang. Gunakan HttpClient sebagai gantinya. |
| SYSLIB0015 | Peringatan | DisablePrivateReflectionAttribute tidak berpengaruh pada .NET 6+. |
| SYSLIB0016 | Peringatan | Gunakan overload Graphics.GetContextInfo yang menerima argumen untuk performa yang lebih baik dan alokasi yang lebih sedikit. |
| SYSLIB0017 | Peringatan | Penandatanganan nama yang kuat tidak didukung dan menghasilkan PlatformNotSupportedException. |
| SYSLIB0018 | Peringatan | Pemuatan hanya refleksi tidak didukung dan memicu PlatformNotSupportedException. |
| SYSLIB0019 | Peringatan | Anggota System.Runtime.InteropServices.RuntimeEnvironment, SystemConfigurationFile, GetRuntimeInterfaceAsIntPtr(Guid, Guid), dan GetRuntimeInterfaceAsObject(Guid, Guid) tidak lagi didukung dan menghasilkan PlatformNotSupportedException. |
| SYSLIB0020 | Peringatan | JsonSerializerOptions.IgnoreNullValues sudah usang. Untuk mengabaikan nilai null saat membuat serialisasi, atur DefaultIgnoreCondition ke JsonIgnoreCondition.WhenWritingNull. |
| SYSLIB0021 | Peringatan | Jenis kriptografi turunan sudah usang. sebagai gantinya, gunakan metode Create pada jenis dasar. |
| SYSLIB0022 | Peringatan | Jenis Rijndael dan RijndaelManaged sudah usang. Gunakan Aes sebagai gantinya. |
| SYSLIB0023 | Peringatan | RNGCryptoServiceProvider sudah usang. Untuk menghasilkan angka acak, gunakan salah satu metode statis RandomNumberGeneratorsebagai gantinya. |
| SYSLIB0024 | Peringatan | Membuat dan membongkar AppDomains tidak didukung dan menghasilkan pengecualian. |
| SYSLIB0025 | Peringatan | SuppressIldasmAttribute tidak berpengaruh pada .NET 6+. |
| SYSLIB0026 | Peringatan | X509Certificate and X509Certificate2 tidak dapat diubah. Gunakan konstruktor yang sesuai untuk membuat sertifikat baru. |
| SYSLIB0027 | Peringatan | PublicKey.Key sudah usang. Gunakan metode yang sesuai untuk mendapatkan kunci umum, seperti GetRSAPublicKey(). |
| SYSLIB0028 | Peringatan | X509Certificate2.PrivateKey sudah usang. Gunakan metode yang sesuai untuk mendapatkan kunci privat, seperti RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2), atau gunakan X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) metode untuk membuat instans baru dengan kunci privat. |
| SYSLIB0029 | Peringatan |
ProduceLegacyHmacValues sudah usang. Pembuatan nilai HMAC lama tidak lagi didukung. |
| SYSLIB0030 | Peringatan |
HMACSHA1 selalu menggunakan implementasi algoritma yang disediakan oleh platform. Gunakan konstruktor tanpa parameter useManagedSha1. |
| SYSLIB0031 | Peringatan | CryptoConfig.EncodeOID(String) sudah usang. Gunakan fungsionalitas ASN.1 yang disediakan di System.Formats.Asn1. |
| SYSLIB0032 | Peringatan | Pemulihan dari pengecualian status proses yang rusak tidak didukung; HandleProcessCorruptedStateExceptionsAttribute diabaikan. |
| SYSLIB0033 | Peringatan | Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) usang dan tidak didukung. Gunakan PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) sebagai gantinya. |
| SYSLIB0034 | Peringatan | CmsSigner(CspParameters) sudah usang. Gunakan konstruktor alternatif sebagai gantinya. |
| SYSLIB0035 | Peringatan | SignerInfo.ComputeCounterSignature() sudah usang. Gunakan overload yang menerima CmsSigner sebagai gantinya. |
| SYSLIB0036 | Peringatan |
Regex.CompileToAssembly sudah kedaluwarsa dan tidak didukung. Gunakan RegexGeneratorAttribute dengan generator sumber regex sebagai gantinya. |
| SYSLIB0037 | Peringatan | Anggota AssemblyName, HashAlgorithm, ProcessorArchitecture, dan VersionCompatibility sudah kedaluwarsa dan tidak didukung. |
| SYSLIB0038 | Peringatan | SerializationFormat.Binary sudah kedaluwarsa dan tidak boleh digunakan. |
| SYSLIB0039 | Peringatan | TLS versi 1.0 dan 1.1 memiliki kerentanan yang diketahui dan tidak direkomendasikan. Gunakan versi TLS yang lebih baru, atau gunakan SslProtocols.None untuk mengikuti default OS. |
| SYSLIB0040 | Peringatan | EncryptionPolicy.NoEncryption dan EncryptionPolicy.AllowNoEncryption secara signifikan mengurangi keamanan dan tidak boleh digunakan dalam kode produksi. |
| SYSLIB0041 | Peringatan | Algoritme hash default dan jumlah perulangan di konstruktor Rfc2898DeriveBytes sudah usang dan tidak aman. Gunakan konstruktor yang menerima algoritme hash dan jumlah perulangan. |
| SYSLIB0042 | Peringatan |
ToXmlString dan FromXmlString tidak memiliki penerapan untuk jenis kriptografi kurva eliptik (ECC), dan sudah kedaluwarsa. Gunakan format impor dan ekspor standar seperti ExportSubjectPublicKeyInfo atau ImportSubjectPublicKeyInfo untuk kunci privat, dan ExportPkcs8PrivateKey atau ImportPkcs8PrivateKey untuk kunci privat. |
| SYSLIB0043 | Peringatan | ECDiffieHellmanPublicKey.ToByteArray() dan konstruktor terkait tidak memiliki penerapan yang konsisten dan dapat dioperasikan di semua platform. Gunakan ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo() sebagai gantinya. |
| SYSLIB0044 | Peringatan | AssemblyName.CodeBase dan AssemblyName.EscapedCodeBase sudah usang. Menggunakannya untuk memuat rakitan tidak didukung. |
| SYSLIB0045 | Peringatan | Metode pabrik kriptografi yang menerima nama algoritma sudah usang. Sebagai gantinya, gunakan metode factory tanpa parameter Create pada jenis algoritma. |
| SYSLIB0046 | Peringatan | Metode ControlledExecution.Run(Action, CancellationToken) ini mungkin merusak proses dan tidak boleh digunakan dalam kode produksi. |
| SYSLIB0047 | Peringatan |
XmlSecureResolver sudah usang. Gunakan XmlResolver.ThrowingResolver sebagai gantinya saat mencoba melarang resolusi entitas eksternal XML. |
| SYSLIB0048 | Peringatan | RSA.EncryptValue(Byte[]) dan RSA.DecryptValue(Byte[]) sudah usang. Gunakan RSA.Encrypt dan RSA.Decrypt sebagai gantinya. |
| SYSLIB0049 | Peringatan | JsonSerializerOptions.AddContext sudah usang. Untuk mendaftarkan JsonSerializerContext, gunakan properti TypeInfoResolver atau TypeInfoResolverChain. |
| SYSLIB0050 | Peringatan | Serialisasi berbasis formatter usang dan tidak boleh digunakan. |
| SYSLIB0051 | Peringatan | API yang mendukung serialisasi berbasis formatter kuno sudah kadaluarsa. Mereka tidak boleh dipanggil atau diperluas oleh kode aplikasi. |
| SYSLIB0052 | Peringatan | API yang mendukung mekanisme usang untuk ekstensibilitas Regex sudah usang. |
| SYSLIB0053 | Peringatan | AesGcm harus menunjukkan ukuran tag yang diperlukan untuk enkripsi dan dekripsi. Gunakan konstruktor yang menerima ukuran tag. |
| SYSLIB0054 | Peringatan | Thread.VolatileRead dan Thread.VolatileWrite sudah usang. Gunakan Volatile.Read atau Volatile.Write sebagai gantinya. |
| SYSLIB0055 | Peringatan |
AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate* metode dengan parameter yang ditandatangani sudah usang. Gunakan overload yang memiliki parameter tipe unsigned sebagai gantinya. |
| SYSLIB0056 | Peringatan |
Assembly.LoadFrom dengan kustomisasi AssemblyHashAlgorithm sudah usang. ** Gunakan fungsi overload tanpa AssemblyHashAlgorithm. |
| SYSLIB0057 | Peringatan |
X509Certificate2 dan X509Certificate konstruktor untuk biner dan konten file sudah usang. |
| SYSLIB0058 | Peringatan | Properti KeyExchangeAlgorithm, KeyExchangeStrength, CipherAlgorithm, CipherAlgorithmStrength, HashAlgorithm, dan HashStrength dari SslStream merupakan usang. Gunakan NegotiatedCipherSuite sebagai gantinya. |
| SYSLIB0059 | Peringatan | SystemEvents.EventsThreadShutdown panggilan balik tidak dijalankan sebelum proses keluar. Gunakan AppDomain.ProcessExit sebagai gantinya. |
| SYSLIB0060 | Peringatan | Konstruktor pada System.Security.Cryptography.Rfc2898DeriveBytes sudah ketinggalan zaman. Gunakan Rfc2898DeriveBytes.Pbkdf2 sebagai gantinya. |
| SYSLIB0061 | Peringatan |
Queryable
Queryable.MaxBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TSource>) dan Queryable.MinBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TSource>) yang mengambil IComparer<TSource> sudah usang. Gunakan yang baru yang mengambil IComparer<TKey>. |
| SYSLIB0062 | Peringatan | XsltSettings.EnableScript sudah usang. |
| SYSLIB0064 | Peringatan | RSACryptoServiceProvider.Encrypt(Byte[], Boolean) dan RSACryptoServiceProvider.Decrypt(Byte[], Boolean) sudah usang. Gunakan overload yang menerima RSAEncryptionPadding sebagai gantinya. |
KEDALUARSA EXTOBS
Tabel berikut mencantumkan kedaluarsa EXTOBS0XXX dari Microsoft.Extensions pustaka.
| Diagnostik ID | Peringatan atau kesalahan | Deskripsi |
|---|---|---|
| EXTOBS0001 | Peringatan | IResourceMonitor usang dan akan dihapus dalam versi mendatang. Pertimbangkan untuk menggunakan instrumen yang dapat diamati Pemantauan Sumber Daya. |
| EXTOBS0002 | Peringatan | Metode AddServiceLogEnricher ekstensi telah ditandai sebagai usang mulai dari paket versi 10.1.0. Metode memperkaya log aplikasi, bukan log layanan, sehingga telah diganti dengan metode yang diberi nama AddApplicationLogEnricher secara benar. |
Menutupi peringatan
Sebaiknya Anda menggunakan solusi yang tersedia jika memungkinkan. Namun, jika Anda tidak dapat mengubah kode, Anda dapat menekan peringatan melalui #pragma direktif atau <NoWarn> pengaturan proyek. Jika Anda harus menggunakan API usang, dan diagnostik SYSLIB0XXX atau EXTOBS0XXX tidak muncul sebagai kesalahan, Anda dapat mengabaikan peringatan tersebut dalam kode atau dalam file proyek Anda.
Untuk menutupi peringatan dalam kode:
// Disable the warning.
#pragma warning disable SYSLIB0001
// Code that uses obsolete API.
//...
// Re-enable the warning.
#pragma warning restore SYSLIB0001
Untuk menutupi peringatan dalam file proyek:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<!-- NoWarn below suppresses SYSLIB0001 project-wide -->
<NoWarn>$(NoWarn);SYSLIB0001</NoWarn>
<!-- To suppress multiple warnings, you can use multiple NoWarn elements -->
<NoWarn>$(NoWarn);SYSLIB0002</NoWarn>
<NoWarn>$(NoWarn);SYSLIB0003</NoWarn>
<!-- Alternatively, you can suppress multiple warnings by using a semicolon-delimited list -->
<NoWarn>$(NoWarn);SYSLIB0001;SYSLIB0002;SYSLIB0003</NoWarn>
</PropertyGroup>
</Project>
Catatan
Menyembunyikan peringatan dengan cara ini hanya menonaktifkan peringatan kedaluwarsa yang Anda tentukan. Tindakan ini tidak menonaktifkan peringatan lain, termasuk peringatan usang dengan ID diagnostik yang berbeda.