Share via


.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 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.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.