.NET 7 移除的自訂 BuildEventArgs 和 ITaskItems 的 BinaryFormatter 序列化

.NET 7 中的 MSBuild 不支援透過 BinaryFormatter 序列化程式來序列化自訂的 BuildEventArgs 衍生和 ITaskItem 衍生類型。

導入的版本

MSBuild 17.4 (.NET SDK 7.0.100)

舊的行為

MSBuild 使用 BinaryFormatter 來保留由 BuildEventArgs 和 ITaskItem 衍生、跨越特定界限的自訂類型,特別是在多處理序環境中執行時。

新的行為

MSBuild 不再支援這項機制,因此使用 BuildEventArgs 和 ITaskItem 自訂類型衍生的程式碼可能會失敗。

變更原因

BinaryFormatter 在 .NET 5 中已過時。 根據此方案,dotnet GitHub 組織中所有第一方程式碼皆須改用 .NET 7。 這項變更會影響 MSBuild 的使用者公開功能。

  • 請與 MSBuild 小組在此 GitHub 討論中探討您的特定使用案例,以及如何轉變 TranslateDotNet 機制。

  • 避免傳回或記錄由工作衍生的自訂類型。