Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
.NET 5'den başlayarak, yeni eski olarak işaretlenen bazı API'ler üzerinde ObsoleteAttributeiki yeni özellik kullanır.
- özelliği, ObsoleteAttribute.DiagnosticId derleyiciye özel bir tanılama kimliği kullanarak derleme uyarıları oluşturmasını söyler. Özel kimlik, kullanımdan kaldırma uyarısının özellikle ve birbirinden ayrı olarak gizlenmesini sağlar. Ad alanı obsolet'leri söz konusu olduğunda
System*, özel tanılama kimliğinin biçimi şeklindedirSYSLIB0XXX.Microsoft.Extensionskullanımdan kaldırmalar söz konusu olduğunda, özel tanılama kimliğinin formatıEXTOBS0XXXşeklindedir. - özelliği, ObsoleteAttribute.UrlFormat eskime hakkında daha fazla bilgi edinmek için derleyiciye bir URL bağlantısı eklemesini söyler.
Eski bir API'nin kullanımından kaynaklanan derleme uyarılarıyla veya hatalarıyla karşılaşırsanız, izleyen başvuru tablolarında listelenen tanılama kimliği için sağlanan özel yönergeleri izleyin. Bu eskitmeler için uyarılar veya hatalar, eski türler veya üyeler için standart tanılama kimliği (CS0618) kullanılarak gizlenemez; bunun yerine özel veya SYSLIB0XXX tanılama kimliği değerlerini kullanın. Daha fazla bilgi için bkz . Uyarıları gizleme.
Aşağıdaki tablolar .NET 5 ve sonraki sürümlerde özel tanılama kimlikleriyle eski API'lere yönelik bir dizin sağlar:
SYSLIB kullanım dışı bırakmalar
Aşağıdaki tabloda .NET 5+ içindeki kullanımdan kaldırılan öğeler listelenmektedir SYSLIB0XXX.
| Tanılama Kimliği | Uyarı veya hata | Açıklama |
|---|---|---|
| SYSLIB0001 | Uyarı | UTF-7 kodlaması güvenli değildir ve kullanılmamalıdır. Bunun yerine UTF-8 kullanmayı düşünün. |
| SYSLIB0002 | Hata | PrincipalPermissionAttribute çalışma zamanı tarafından kabul edilmez ve kullanılmamalıdır. |
| SYSLIB0003 | Uyarı | Kod erişim güvenliği (CAS) çalışma zamanı tarafından desteklenmez veya kabul edilmez. |
| SYSLIB0004 | Uyarı | Kısıtlanmış yürütme bölgesi (CER) özelliği desteklenmez. |
| SYSLIB0005 | Uyarı | Genel derleme önbelleği (GAC) desteklenmez. |
| SYSLIB0006 | Uyarı | Thread.Abort() desteklenmez ve oluşturur PlatformNotSupportedException. |
| SYSLIB0007 | Uyarı | Bu şifreleme algoritmasının varsayılan uygulaması desteklenmez. |
| SYSLIB0008 | Uyarı | CreatePdbGenerator() API desteklenmez ve oluştururPlatformNotSupportedException. |
| SYSLIB0009 | Uyarı | AuthenticationManager desteklenmez. Yöntemler işlem yapılmaz veya oluşturur PlatformNotSupportedException. |
| SYSLIB0010 | Uyarı | Bazı uzaktan iletişim API'leri desteklenmez ve oluşturur PlatformNotSupportedException. |
| SYSLIB0011 | Uyarı | BinaryFormatter serileştirme eskidir ve kullanılmamalıdır. |
| SYSLIB0012 | Uyarı | Assembly.CodeBase ve Assembly.EscapedCodeBase yalnızca .NET Framework uyumluluğu için dahil edilir. Bunun yerine Assembly.Location kullanın. |
| SYSLIB0013 | Uyarı | Uri.EscapeUriString(String) bazı durumlarda Uri dizesini bozabilir. Bunun yerine sorgu dizesi bileşenleri için kullanmayı Uri.EscapeDataString(String) göz önünde bulundurun. |
| SYSLIB0014 | Uyarı | WebRequest, HttpWebRequest, ServicePointve WebClient artık kullanılmıyor. Bunun yerine HttpClient kullanın. |
| SYSLIB0015 | Uyarı | DisablePrivateReflectionAttribute .NET 6+ üzerinde hiçbir etkisi yoktur. |
| SYSLIB0016 | Uyarı | Graphics.GetContextInfo Daha iyi performans ve daha az ayırma için bağımsız değişkenleri kabul eden aşırı yüklemeleri kullanın. |
| SYSLIB0017 | Uyarı | Tanımlayıcı ad imzalama desteklenmez ve oluşturur PlatformNotSupportedException. |
| SYSLIB0018 | Uyarı | Yalnızca yansıma yüklemesi desteklenmez ve oluşturur PlatformNotSupportedException. |
| SYSLIB0019 | Uyarı | System.Runtime.InteropServices.RuntimeEnvironment, SystemConfigurationFileve GetRuntimeInterfaceAsIntPtr(Guid, Guid) üyeleri GetRuntimeInterfaceAsObject(Guid, Guid)artık desteklenmez ve oluştururPlatformNotSupportedException. |
| SYSLIB0020 | Uyarı | JsonSerializerOptions.IgnoreNullValues kullanımdan kaldırıldı. Seri hale getirildiğinde null değerleri yoksaymak için olarak DefaultIgnoreConditionayarlayınJsonIgnoreCondition.WhenWritingNull. |
| SYSLIB0021 | Uyarı | Türetilmiş şifreleme türleri eskidir.
Create Bunun yerine temel türdeki yöntemini kullanın. |
| SYSLIB0022 | Uyarı | Rijndael ve RijndaelManaged türleri eskidir. Bunun yerine Aes kullanın. |
| SYSLIB0023 | Uyarı | RNGCryptoServiceProvider kullanımdan kaldırıldı. Rastgele bir sayı oluşturmak için bunun yerine statik yöntemlerden birini RandomNumberGenerator kullanın. |
| SYSLIB0024 | Uyarı | AppDomains oluşturma ve kaldırma desteklenmez ve bir özel durum oluşturur. |
| SYSLIB0025 | Uyarı | SuppressIldasmAttribute .NET 6+ üzerinde hiçbir etkisi yoktur. |
| SYSLIB0026 | Uyarı | X509Certificate ve X509Certificate2 sabittir. Yeni bir sertifika oluşturmak için uygun oluşturucuyu kullanın. |
| SYSLIB0027 | Uyarı | PublicKey.Key kullanımdan kaldırıldı. gibi GetRSAPublicKey()ortak anahtarı almak için uygun yöntemi kullanın. |
| SYSLIB0028 | Uyarı | X509Certificate2.PrivateKey kullanımdan kaldırıldı. gibi RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2)özel anahtarı almak için uygun yöntemi kullanın veya özel anahtarla yeni bir örnek oluşturmak için yöntemini kullanın X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) . |
| SYSLIB0029 | Uyarı |
ProduceLegacyHmacValues kullanımdan kaldırıldı. Eski HMAC değerlerinin üretilmesi artık desteklenmiyor. |
| SYSLIB0030 | Uyarı |
HMACSHA1 her zaman platform tarafından sağlanan algoritma uygulamasını kullanır. parametresi olmadan useManagedSha1 bir oluşturucu kullanın. |
| SYSLIB0031 | Uyarı | CryptoConfig.EncodeOID(String) kullanımdan kaldırıldı. içinde System.Formats.Asn1sağlanan ASN.1 işlevini kullanın. |
| SYSLIB0032 | Uyarı | Bozuk işlem durumu özel durumlarından kurtarma desteklenmez; HandleProcessCorruptedStateExceptionsAttribute yoksayılır. |
| SYSLIB0033 | Uyarı | Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) eskidir ve desteklenmez. Bunun yerine PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) kullanın. |
| SYSLIB0034 | Uyarı | CmsSigner(CspParameters) kullanımdan kaldırıldı. Bunun yerine alternatif bir oluşturucu kullanın. |
| SYSLIB0035 | Uyarı | SignerInfo.ComputeCounterSignature() kullanımdan kaldırıldı. Bunun yerine kabul CmsSigner eden aşırı yüklemeyi kullanın. |
| SYSLIB0036 | Uyarı |
Regex.CompileToAssembly eskidir ve desteklenmez. Bunun yerine normal ifade kaynak oluşturucu ile kullanın RegexGeneratorAttribute . |
| SYSLIB0037 | Uyarı | AssemblyName HashAlgorithm, ve ProcessorArchitecture üyeleri VersionCompatibilityeskidir ve desteklenmez. |
| SYSLIB0038 | Uyarı | SerializationFormat.Binary kullanım dışıdır ve kullanılmamalıdır. |
| SYSLIB0039 | Uyarı | TLS sürüm 1.0 ve 1.1 bilinen güvenlik açıklarına sahiptir ve önerilmez. Bunun yerine daha yeni bir TLS sürümü kullanın veya işletim sistemi varsayılanlarına ertelemek için kullanın SslProtocols.None . |
| SYSLIB0040 | Uyarı | EncryptionPolicy.NoEncryption ve EncryptionPolicy.AllowNoEncryption güvenliği önemli ölçüde azaltır ve üretim kodunda kullanılmamalıdır. |
| SYSLIB0041 | Uyarı | Oluşturuculardaki Rfc2898DeriveBytes varsayılan karma algoritma ve yineleme sayıları güncel değildir ve güvenli değildir. Karma algoritmasını ve yineleme sayısını kabul eden bir oluşturucu kullanın. |
| SYSLIB0042 | Uyarı |
ToXmlString ve FromXmlString eliptik eğri şifreleme (ECC) türleri için hiçbir uygulama yoktur ve eskidir. Ortak anahtarlar ve özel anahtarlar için veya ExportSubjectPublicKeyInfo gibi ImportSubjectPublicKeyInfo standart bir içeri ve ExportPkcs8PrivateKeyImportPkcs8PrivateKey dışarı aktarma biçimi kullanın. |
| SYSLIB0043 | Uyarı | ECDiffieHellmanPublicKey.ToByteArray() ve ilişkili oluşturucunun tüm platformlarda tutarlı ve birlikte çalışabilen bir uygulaması yoktur. Bunun yerine ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo() kullanın. |
| SYSLIB0044 | Uyarı | AssemblyName.CodeBase ve AssemblyName.EscapedCodeBase artık kullanılmıyor. Derleme yüklemek için bunları kullanmak desteklenmez. |
| SYSLIB0045 | Uyarı | Bir algoritma adını kabul eden şifreleme fabrikası yöntemleri eskidir. Bunun yerine algoritma türünde parametresiz Create fabrika yöntemini kullanın. |
| SYSLIB0046 | Uyarı | ControlledExecution.Run(Action, CancellationToken) yöntemi işlemi bozabilir ve üretim kodunda kullanılmamalıdır. |
| SYSLIB0047 | Uyarı |
XmlSecureResolver kullanımdan kaldırıldı. Bunun yerine, XML dış varlık çözümlemesini yasaklama girişiminde bulunurken kullanın XmlResolver.ThrowingResolver . |
| SYSLIB0048 | Uyarı | RSA.EncryptValue(Byte[]) ve RSA.DecryptValue(Byte[]) artık kullanılmıyor. bunun yerine ve RSA.Encrypt kullanınRSA.Decrypt. |
| SYSLIB0049 | Uyarı | JsonSerializerOptions.AddContext kullanımdan kaldırıldı. JsonSerializerContext kaydetmek için TypeInfoResolver veya TypeInfoResolverChain özelliğini kullanın. |
| SYSLIB0050 | Uyarı | Biçimlendirici tabanlı serileştirme eskidir ve kullanılmamalıdır. |
| SYSLIB0051 | Uyarı | Eski biçimlendirici tabanlı serileştirmeyi destekleyen API'ler eskidir. Uygulama kodu tarafından çağrılmamalı veya genişletilmemelidir. |
| SYSLIB0052 | Uyarı | Regex genişletilebilirliği için eski mekanizmaları destekleyen API'ler eskidir. |
| SYSLIB0053 | Uyarı | AesGcm şifreleme ve şifre çözme için gerekli etiket boyutunu göstermelidir. Etiket boyutunu kabul eden bir oluşturucu kullanın. |
| SYSLIB0054 | Uyarı | Thread.VolatileRead ve Thread.VolatileWrite artık kullanılmıyor. Bunun yerine veya Volatile.Read kullanınVolatile.Write. |
| SYSLIB0055 | Uyarı |
AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate* imzalı parametrelere sahip yöntemler kullanımdan kaldırıldı. Bunun yerine imzasız aşırı yüklemeleri kullanın. |
| SYSLIB0056 | Uyarı |
Assembly.LoadFrom ile özel AssemblyHashAlgorithm kullanımdan kaldırıldı. aşırı yüklemelerini olmadan AssemblyHashAlgorithmkullanın. |
| SYSLIB0057 | Uyarı |
X509Certificate2 ve X509Certificate ikili ve dosya içeriği oluşturucuları kullanımdan kaldırıldı. |
| SYSLIB0058 | Uyarı |
KeyExchangeAlgorithm, KeyExchangeStrength, CipherAlgorithm, CipherAlgorithmStrength, HashAlgorithmve HashStrength özellikleri SslStream kullanım dışıdır. Bunun yerine NegotiatedCipherSuite kullanın. |
| SYSLIB0059 | Uyarı | SystemEvents.EventsThreadShutdown geri çağırmalar işlemden çıkmadan önce çalıştırılamaz. Bunun yerine AppDomain.ProcessExit kullanın. |
| SYSLIB0060 | Uyarı | System.Security.Cryptography.Rfc2898DeriveBytes oluşturucular artık kullanılmıyor. Bunun yerine Rfc2898DeriveBytes.Pbkdf2 kullanın. |
| SYSLIB0061 | Uyarı | Ve'yi QueryableQueryable.MaxBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TSource>)Queryable.MinBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TSource>) almak IComparer<TSource> eskimiş. bir alan IComparer<TKey>yenilerini kullanın. |
| SYSLIB0062 | Uyarı | XsltSettings.EnableScript kullanımdan kaldırıldı. |
EXTOBS modası geçmiş öğeler
Aşağıdaki tabloda kitaplıklardaki EXTOBS0XXXMicrosoft.Extensions obsolet'ler listeleniyor.
| Tanılama Kimliği | Uyarı veya hata | Açıklama |
|---|---|---|
| EXTOBS0001 | Uyarı | IResourceMonitor eskidir ve gelecekteki bir sürümde kaldırılacaktır. Kaynak İzleme gözlemlenebilir araçları kullanmayı göz önünde bulundurun. |
| EXTOBS0002 | Uyarı |
AddServiceLogEnricher Uzantı yöntemleri, 10.1.0 paketi sürümünden itibaren kullanım dışı olarak işaretlendi. Yöntemler, hizmet günlüklerini değil uygulama günlüklerini zenginleştirir, bu nedenle bunların yerine doğru adlandırılmış AddApplicationLogEnricher yöntemler kullanılır. |
Uyarıları gizleme
Mümkün olduğunda kullanılabilir bir geçici çözüm kullanmanız önerilir. Ancak, kodunuzu değiştiremiyorsanız bir yönerge veya #pragma proje ayarı aracılığıyla <NoWarn> uyarıları gizleyebilirsiniz. Eski API'leri kullanmanız gerekiyorsa ve SYSLIB0XXX veya EXTOBS0XXX tanılaması hata olarak ortaya çıkmazsa, uyarıyı kodda veya proje dosyanızda gizleyebilirsiniz.
Koddaki uyarıları engellemek için:
// Disable the warning.
#pragma warning disable SYSLIB0001
// Code that uses obsolete API.
//...
// Re-enable the warning.
#pragma warning restore SYSLIB0001
Proje dosyasındaki uyarıları engellemek için:
<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>
Not
Uyarıların bu şekilde gizlenmesi yalnızca belirttiğiniz eski uyarıları devre dışı bırakır. Farklı tanılama kimliklerine sahip kullanımdan kaldırılan uyarılar da dahil olmak üzere diğer uyarıları devre dışı bırakmaz.
Ayrıca bkz.
- Varsayılan olmayan tanılama kimlikleriyle API obsoletions (.NET 8)
- .NET 9: Varsayılan olmayan tanılama kimlikleri ile API kullanımdan kaldırmaları
- API'nin varsayılan olmayan tanı kimlikleriyle kullanımdan kaldırılması (.NET 10)