.NET 5+ uygulamasında eski özellikler
.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. .NET 5+ obsoletions söz konusu olduğunda, özel tanılama kimliğinin biçimi olur
SYSLIB0XXX
.ö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 dolayı derleme uyarıları veya hatalarıyla karşılaşırsanız, Başvuru bölümünde listelenen tanılama kimliği için sağlanan özel yönergeleri izleyin. Bu obsolet'ler 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 SYSLIB0XXX
tanılama kimliği değerlerini kullanın. Daha fazla bilgi için bkz . Uyarıları gizleme.
Başvuru
Aşağıdaki tabloda .NET 5+ içindeki obsoletions için bir dizin SYSLIB0XXX
sağlanır.
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 Düşünceler yükleme desteklenmez ve oluştururPlatformNotSupportedException. |
SYSLIB0019 | Uyarı | System.Runtime.InteropServices.RuntimeEnvironment, GetRuntimeInterfaceAsIntPtr(Guid, Guid)ve GetRuntimeInterfaceAsObject(Guid, Guid) üyeleri SystemConfigurationFileartı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 JsonIgnoreCondition.WhenWritingNullayarlayınDefaultIgnoreCondition. |
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ı | AssemblyNameProcessorArchitecture, ve VersionCompatibility üyeleri HashAlgorithmeskidir 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 ImportSubjectPublicKeyInfo gibi ExportSubjectPublicKeyInfo standart bir içeri ve ExportPkcs8PrivateKey ImportPkcs8PrivateKey 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.Decrypt kullanınRSA.Encrypt. |
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.Write kullanınVolatile.Read. |
SYSLIB0055 | Uyarı | AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate* imzalı parametrelere sahip yöntemler kullanımdan kaldırıldı. Bunun yerine imzasız aşırı yüklemeleri kullanın. |
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 <NoWarn>
proje ayarı aracılığıyla #pragma
uyarıları gizleyebilirsiniz. Eski API'leri kullanmanız gerekiyorsa ve SYSLIB0XXX
tanılama 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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin