Eliminación de la serialización binaryFormatter de BuildEventArgs y ITaskItems personalizados para .NET 7

MSBuild en .NET 7 no admite la serialización de tipos personalizados BuildEventArgsderivados y ITaskItemderivados mediante el BinaryFormatter serializador.

Versión introducida

MSBuild 17.4 (SDK de .NET 7.0.100)

Comportamiento anterior

MSBuild ha usado BinaryFormatter para conservar tipos personalizados derivados de BuildEventArgs e ITaskItem más allá de determinados límites, especialmente al ejecutarse en un entorno de varios procesos.

Comportamiento nuevo

MSBuild ya no admitirá este mecanismo, por lo que es posible que se produzcan errores en el código que use tipos personalizados derivados de BuildEventArgs e ITaskItem.

Motivo del cambio

BinaryFormatter pasó a estar obsoleto en .NET 5. Según este plan, todo el código interno de la organización de GitHub de dotnet debe dejar de usarse en .NET 7. Este cambio afecta a la funcionalidad expuesta a los usuarios de MSBuild.

  • Póngase en contacto con el equipo de MSBuild en esta conversación de GitHub para exponer sus casos de uso específicos y cómo puede abandonar el mecanismo TranslateDotNet.

  • Evite devolver tipos derivados personalizados de tareas o durante el registro.