Windows Forms 淘汰和警告 (.NET 7)
從 .NET 7 開始,某些 Windows Forms API 已標示為已淘汰。 其他 API 並非已淘汰,但如果您參考這些,將導致編譯時間警告。
先前的行為
在舊版 .NET 中,可以使用這些 API,且不會出現任何建置警告。
新的行為
在 .NET 7 與更新版本中,使用這些 API 會產生具有自訂診斷識別碼的編譯時期警告或錯誤。 使用自訂診斷識別碼可讓您個別隱藏警告,而不是隱藏所有淘汰警告。
下表列出自訂診斷識別碼及其對應的警告訊息。
診斷識別碼 | 描述 | 嚴重性 | 導入的版本 |
---|---|---|---|
WFDEV001 | 轉換至 IntPtr/從 IntPtr 轉換並不安全。 請改用 WParamInternal 、LParamInternal 或 ResultInternal 。 |
警告 | Preview 1 |
WFDEV002 | System.Windows.Forms.DomainUpDown.DomainUpDownAccessibleObject 不再用來提供 DomainUpDown 控制項的可存取支援。 請改用 AccessibleObject。 | 警告 | RC 1 |
WFDEV003 | System.Windows.Forms.DomainUpDown.DomainItemAccessibleObject 不再用來提供 DomainUpDown 項目的可存取支援。 請改用 AccessibleObject。 | 警告 | RC 1 |
導入的版本
.NET 7
中斷性變更的類型
這些淘汰警告可能會影響來源相容性。
建議的動作
- 請使用警告上提供的 URL 連結來遵循針對每個診斷識別碼提供的特定指引。
- 如有必要,您可以使用自訂
WFDEVxxx
診斷識別碼值來隱藏警告。
受影響的 API
WFDEV001
- System.Windows.Forms.Message.WParam
- System.Windows.Forms.Message.LParam
- System.Windows.Forms.Message.Result
WFDEV002
WFDEV003
另請參閱
- .NET 7 與更新版本中已淘汰的 Windows Forms 功能 (部分機器翻譯)