具有非預設診斷識別碼的 API 淘汰 (.NET 6)
從 .NET 6 開始,某些 API 已標示為已淘汰。 這項中斷性變更專屬於已標示為已過時且「具有自訂診斷識別碼」的 API。 隱藏 C# 編譯器的預設淘汰診斷識別碼,也就是 CS0618,不會隱藏使用這些 API 時編譯器所產生的警告。
變更描述
在舊版 .NET 中,可以使用這些 API,且不會出現任何建置警告。 在 .NET 6 與更新版本中,使用這些 API 會產生具有自訂診斷識別碼的編譯時期警告或錯誤。 使用自訂診斷識別碼可讓您個別隱藏淘汰警告,而不是隱藏所有淘汰警告。
下表列出已淘汰 API 的自訂診斷識別碼及其對應的警告訊息。
導入的版本
.NET 6
建議的動作
請使用警告上提供的 URL 連結,遵循為每個診斷識別碼提供的特定指引。
使用過時類型或成員的標準診斷識別碼無法隱藏這些淘汰的警告或錯誤;請改用自訂
SYSLIBxxxx
診斷識別碼值。
受影響的 API
SYSLIB0013
SYSLIB0014
SYSLIB0015
SYSLIB0016
SYSLIB0017
SYSLIB0018
- System.Reflection.Assembly.ReflectionOnlyLoad
- System.Reflection.Assembly.ReflectionOnlyLoadFrom(String)
- System.Type.ReflectionOnlyGetType(String, Boolean, Boolean)
SYSLIB0019
- System.Runtime.InteropServices.RuntimeEnvironment.SystemConfigurationFile
- System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeInterfaceAsIntPtr(Guid, Guid)
- System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeInterfaceAsObject(Guid, Guid)
SYSLIB0020
SYSLIB0021
- System.Security.Cryptography.AesCryptoServiceProvider
- System.Security.Cryptography.AesManaged
- System.Security.Cryptography.DESCryptoServiceProvider
- System.Security.Cryptography.MD5CryptoServiceProvider
- System.Security.Cryptography.RC2CryptoServiceProvider
- System.Security.Cryptography.SHA1CryptoServiceProvider
- System.Security.Cryptography.SHA1Managed
- System.Security.Cryptography.SHA256Managed
- System.Security.Cryptography.SHA256CryptoServiceProvider
- System.Security.Cryptography.SHA384Managed
- System.Security.Cryptography.SHA384CryptoServiceProvider
- System.Security.Cryptography.SHA512Managed
- System.Security.Cryptography.SHA512CryptoServiceProvider
- System.Security.Cryptography.TripleDESCryptoServiceProvider