Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os eventos de build derivados personalizados de qualquer subclasse de BuildEventArgs por qualquer extensibilidade de build (principalmente tarefas personalizadas) foram preteridos.
Comportamento anterior
Anteriormente, você podia derivar de qualquer subclasse de BuildEventArgs e usar esses tipos livremente em tarefas personalizadas e outros pontos de extensibilidade de compilação.
Novo comportamento
A partir do .NET 8, um erro de build será emitido se o código usar qualquer tipo derivado de BuildEventArgs e você for construí-lo usando a versão .NET 8 do MSBuild, ou seja, a partir da linha de comando:
Uso de BinaryFormatter não seguro durante a serialização do tipo de evento personalizado 'MyCustomBuildEventArgs'. Isso será preterido em breve. Em vez disso, use Extended*EventArgs. Mais informações: https://aka.ms/msbuild/eventargs.
No .NET 10, a mensagem de erro foi alterada para:
Não há suporte para o tipo de evento personalizado 'MyCustomBuildEventArgs', pois todos os tipos de eventos personalizados foram preteridos. Em vez disso, use Extended*EventArgs. Mais informações: https://aka.ms/msbuild/eventargs.
A partir do Visual Studio versão 17.10, o mesmo comportamento se aplica a builds no Visual Studio.
Versão introduzida
.NET 8 RC 1
Tipo de alteração
Esta é uma alteração comportamental.
Motivo da alteração
BinaryFormatter A serialização é obsoleta no .NET 8 e versões posteriores. O uso de BinaryFormatter é considerado inseguro e gera uma exceção no tempo de execução. Como os eventos de build derivados personalizados do MSBuild usam BinaryFormatter, o build falhará se você tiver usado esses eventos em seu build. O novo erro de compilação proporciona uma falha mais graciosa.
Ação recomendada
Use um dos seguintes eventos internos recém-introduzidos para extensibilidade em vez do evento de build derivado personalizado:
- ExtendedCustomBuildEventArgs
- ExtendedBuildErrorEventArgs
- ExtendedBuildMessageEventArgs
- ExtendedBuildWarningEventArgs
Como alternativa, você pode desabilitar temporariamente a verificação definindo explicitamente a variável de ambiente MSBUILDCUSTOMBUILDEVENTWARNING como algo diferente de 1.