Aracılığıyla paylaş


Varsayılan olmayan tanılama kimlikleriyle API obsoletions (.NET 7)

Bazı API'ler .NET 7'den başlayarak kullanım dışı olarak işaretlendi. Bu hataya neden olan değişiklik, özel tanılama kimliğiyle kullanım dışı olarak işaretlenmiş API'lere özgüdür. C# derleyicisi için CS0618 olan varsayılan eski tanılama kimliğinin gizlenmesi, bu API'ler kullanıldığında derleyicinin oluşturduğu uyarıları gizlemez.

Açıklama değiştirildi

Önceki .NET sürümlerinde, bu API'ler herhangi bir derleme uyarısı olmadan kullanılabilir. .NET 7 ve sonraki sürümlerde, bu API'lerin kullanılması özel tanılama kimliğiyle bir derleme zamanı uyarısı veya hatası oluşturur. Özel tanılama kimliklerinin kullanılması, eskime uyarılarını tüm eskime uyarılarını gizleme yerine ayrı ayrı gizlemenize olanak tanır.

Aşağıdaki tabloda, özel tanılama kimlikleri ve engellenen API'ler için bunlara karşılık gelen uyarı iletileri listelenmektedir.

Tanılama Kimliği Açıklama Önem derecesi
SYSLIB0036 Regex.CompileToAssembly eskidir ve desteklenmez. Bunun yerine normal ifade kaynak oluşturucu ile kullanın RegexGeneratorAttribute . Uyarı
SYSLIB0037 AssemblyNameProcessorArchitecture, ve VersionCompatibility üyeleri HashAlgorithmeskidir ve desteklenmez. Uyarı
SYSLIB0038 SerializationFormat.Binary kullanım dışıdır ve kullanılmamalıdır. Uyarı
SYSLIB0039 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 . Uyarı
SYSLIB0040 EncryptionPolicy.NoEncryption ve EncryptionPolicy.AllowNoEncryption güvenliği önemli ölçüde azaltır ve üretim kodunda kullanılmamalıdır. Uyarı
SYSLIB0041 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. Uyarı
SYSLIB0042 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. Uyarı
SYSLIB0043 ECDiffieHellmanPublicKey.ToByteArray() ve ilişkili oluşturucunun tüm platformlarda tutarlı ve birlikte çalışabilen bir uygulaması yoktur. Bunun yerine ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo() kullanın. Uyarı
SYSLIB0044 AssemblyName.CodeBase ve AssemblyName.EscapedCodeBase artık kullanılmıyor. Uyarı
SYSLIB0045 Bir algoritma adını kabul eden şifreleme fabrikası yöntemleri eskidir. Bunun yerine algoritma türünde parametresiz Create fabrika yöntemini kullanın. Uyarı
SYSLIB0047 XmlSecureResolver kullanımdan kaldırıldı. Bunun XmlResolver.ThrowingResolver yerine dış XML kaynaklarının çözümlemesini yasaklayın. Uyarı

Sürüm kullanıma sunulmuştur

.NET 7

Hataya neden olan değişikliğin türü

Bu obsolet'ler kaynak uyumluluğunu etkileyebilir.

  • Uyarıda sağlanan URL bağlantısını kullanarak her tanılama kimliği için sağlanan yönergeleri izleyin.

  • Bu obsoletion'lar için uyarılar veya hatalar, eski türler veya üyeler için standart tanılama kimliği kullanılarak gizlenemez; bunun yerine özel SYSLIBxxxx tanılama kimliği değerini kullanın.

Etkilenen API’ler

SYSLIB0036

SYSLIB0037

SYSLIB0038

SYSLIB0039

SYSLIB0040

SYSLIB0041

SYSLIB0042

SYSLIB0043

SYSLIB0045

SYSLIB0047

Ayrıca bkz.