具有非預設診斷識別碼的 API 淘汰 (.NET 9)
從 .NET 9 開始,某些 API 已標示為已淘汰。 這項中斷性變更專屬於已標示為已過時且「具有自訂診斷識別碼」的 API。 隱藏 C# 編譯器的預設淘汰診斷識別碼,也就是 CS0618,不會隱藏使用這些 API 時編譯器所產生的警告。
變更描述
在舊版 .NET 中,可以使用這些 API,且不會出現任何建置警告。 在 .NET 9 與更新版本中,使用這些 API 會產生具有自訂診斷識別碼的編譯時間警告或錯誤。 使用自訂診斷識別碼可讓您個別隱藏淘汰警告,而不是隱藏所有淘汰警告。
下表列出已淘汰 API 的自訂診斷識別碼及其對應的警告訊息。
診斷識別碼 | 描述 | 嚴重性 |
---|---|---|
SYSLIB0009 | 不支援 AuthenticationManager。 方法不會執行任何作業或擲回 PlatformNotSupportedException。 | 警告 |
SYSLIB0014:WebRequest、HttpWebRequest、ServicePoint、WebClient 已過時 | ServicePointManager 已完全過時。 上的 ServicePointManager 設定不會影響 SslStream 或 HttpClient (自 .NET 6 以來,此行為尚未變更)。 | 警告 |
SYSLIB0054 | Thread.VolatileRead 和 Thread.VolatileWrite 已淘汰。 請改用 Volatile.Read 或 Volatile.Write。 | 警告 |
SYSLIB0055 | AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate* 方法搭配帶正負號的參數是過時的做法。 請改用不帶正負號的多載。 |
警告 |
SYSLIB0056 | 具有自訂 AssemblyHashAlgorithm 的 Assembly.LoadFrom 已淘汰。 使用不含 AssemblyHashAlgorithm 的多載。 |
警告 |
SYSLIB0057 | 二進位和檔案內容的 X509Certificate2 和 X509Certificate 建構函式已經過時。 |
警告 |
導入的版本
.NET 9
中斷性變更的類型
這些混淆可能會影響來源相容性。
建議的動作
請使用警告上提供的 URL 連結,遵循為每個診斷識別碼提供的特定指引。
使用過時類型或成員的標準診斷識別碼無法隱藏這些淘汰的警告或錯誤;請改用自訂
SYSLIBxxxx
診斷識別碼值。
受影響的 API
SYSLIB0009
SYSLIB0014
SYSLIB0054
SYSLIB0055
- System.Runtime.Intrinsics.Arm.AdvSimd.Arm64.ShiftRightLogicalRoundedNarrowingSaturateScalar(Vector64<Int64>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.Arm64.ShiftRightLogicalRoundedNarrowingSaturateScalar(Vector64<Int16>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.Arm64.ShiftRightLogicalRoundedNarrowingSaturateScalar(Vector64<Int32>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateLower(Vector128<Int16>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateLower(Vector128<Int64>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateLower(Vector128<Int32>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateUpper(Vector64<SByte>, Vector128<Int16>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateUpper(Vector64<Int16>, Vector128<Int32>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateUpper(Vector64<Int32>, Vector128<Int64>, Byte)
SYSLIB0056
SYSLIB0057
- X509Certificate2(Byte[])
- X509Certificate2(ReadOnlySpan<Byte>)
- X509Certificate2(String)
- X509Certificate2(Byte[], SecureString)
- X509Certificate2(Byte[], String)
- X509Certificate2(String, SecureString)
- X509Certificate2(String, String)
- X509Certificate2(Byte[], SecureString, X509KeyStorageFlags)
- X509Certificate2(Byte[], String, X509KeyStorageFlags)
- X509Certificate2(ReadOnlySpan<Byte>, ReadOnlySpan<Char>, X509KeyStorageFlags)
- X509Certificate2(String, ReadOnlySpan<Char>, X509KeyStorageFlags)
- X509Certificate2(String, SecureString, X509KeyStorageFlags)
- X509Certificate2(String, String, X509KeyStorageFlags)
- X509Certificate(Byte[])
- X509Certificate(String)
- X509Certificate(Byte[], SecureString)
- X509Certificate(Byte[], String)
- X509Certificate(String, String, X509KeyStorageFlags)
- X509Certificate(String, SecureString)
- X509Certificate(String, String)
- X509Certificate(Byte[], SecureString, X509KeyStorageFlags)
- X509Certificate(Byte[], String, X509KeyStorageFlags)
- X509Certificate(String, SecureString, X509KeyStorageFlags)
- X509Certificate(String, String, X509KeyStorageFlags)
- Import(Byte[])
- Import(ReadOnlySpan<Byte>)
- Import(ReadOnlySpan<Byte>)
- Import(Byte[], String, X509KeyStorageFlags)
- Import(ReadOnlySpan<Byte>, ReadOnlySpan<Char>, X509KeyStorageFlags)
- Import(ReadOnlySpan<Byte>, String, X509KeyStorageFlags)
- Import(String, ReadOnlySpan<Char>, X509KeyStorageFlags)
- Import(String, String, X509KeyStorageFlags)
- CreateFromSignedFile(String)