Share via


具有非預設診斷識別碼的 API 淘汰

從 .NET 5 開始,某些 API 已標示為已淘汰。 這項中斷性變更專屬於已標示為已過時且「具有自訂診斷識別碼」的 API。 隱藏 C# 編譯器的預設淘汰診斷識別碼,也就是 CS0618,不會隱藏使用這些 API 時編譯器所產生的警告。

變更描述

在舊版 .NET 中,可以使用這些 API,且不會出現任何建置警告。 在 .NET 5 與更新版本中,使用這些 API 會產生具有自訂診斷識別碼的編譯時間警告或錯誤。 使用自訂診斷識別碼可讓您個別隱藏淘汰警告,而不是隱藏所有淘汰警告。

下表列出已淘汰 API 的自訂診斷識別碼及其對應的警告訊息。

診斷識別碼 描述 嚴重性
SYSLIB0001 UTF-7 編碼不安全,不應該使用。 請考慮改用 UTF-8。 警告
SYSLIB0002 PrincipalPermissionAttribute 不被執行階段接受,不得使用。 錯誤
SYSLIB0003 執行階段不支援或接受程式碼存取安全性 (CAS)。 警告
SYSLIB0004 不支援限制的執行區域 (CER) 特徵。 警告
SYSLIB0005 不支援全域組件快取 (GAC)。 警告
SYSLIB0006 不支援 Thread.Abort() 屬性,而且會擲回 PlatformNotSupportedException 警告
SYSLIB0007 不支援此密碼編譯演算法的預設實作。 警告
SYSLIB0008 不支援 CreatePdbGenerator() API,而且會擲回 PlatformNotSupportedException 警告
SYSLIB0009 不支援 AuthenticationManager.AuthenticateAuthenticationManager.PreAuthenticate 方法,而且會擲回 PlatformNotSupportedException 警告
SYSLIB0010 不支援某些遠端 API,而且會擲回 PlatformNotSupportedException 警告
SYSLIB0011 BinaryFormatter 序列化已淘汰,不應該使用。 警告
SYSLIB0012 Assembly.CodeBaseAssembly.EscapedCodeBase 僅針對 .NET Framework 相容性而包含。 請改用 Assembly.Location 警告

導入的版本

.NET 5.0

  • 請使用警告上提供的 URL 連結來遵循針對每個診斷識別碼提供的特定指引。

  • 使用淘汰類型或成員的標準診斷識別碼無法隱藏這些淘汰項目的警告或錯誤;請改用自訂 SYSLIBxxxx 診斷識別碼值。

受影響的 API

SYSLIB0001

SYSLIB0002

SYSLIB0003

System.Security.Permissions 命名空間中的類別:

衍生自 CodeAccessSecurityAttribute 的類別:

介面:

實作 IStackWalk 的類別:

實作 IPermission 的類別:

衍生自 CodeAccessPermission 的類別:

衍生自 ResourcePermissionBase 的類別:

System.Security.Permissions 命名空間中的列舉:

相依於程式碼存取安全性類型的類別和成員:

SYSLIB0004

SYSLIB0005

SYSLIB0006

SYSLIB0007

SYSLIB0008

SYSLIB0009

SYSLIB0010

SYSLIB0011

SYSLIB0012

另請參閱