.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
機制。避免傳回或記錄由工作衍生的自訂類型。