Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anpassade härledda bygghändelser för alla underklasser av BuildEventArgs eventuella utökningsbarheter (främst anpassade uppgifter) har föråldrats.
Tidigare beteende
Tidigare kunde du härleda från alla underklasser av BuildEventArgs och använda dessa typer fritt i anpassade uppgifter och andra utökningsbarhetspunkter.
Nytt beteende
Från och med .NET 8 utfärdas ett versionsfel om koden använder någon typ som härleds från BuildEventArgs och du skapar med hjälp av .NET 8-versionen av MSBuild, dvs. från kommandoraden:
Användning av osäker BinaryFormatter under serialiseringen av den anpassade händelsetypen "MyCustomBuildEventArgs". Detta kommer snart att bli inaktuellt. Använd Extended*EventArgs i stället. Mer information: https://aka.ms/msbuild/eventargs.
I .NET 10 ändrades felmeddelandet till:
Den anpassade händelsetypen "MyCustomBuildEventArgs" stöds inte eftersom alla anpassade händelsetyper är inaktuella. Använd Extended*EventArgs i stället. Mer information: https://aka.ms/msbuild/eventargs.
Från och med Visual Studio version 17.10 gäller samma beteende för versioner i Visual Studio.
Version lanserad
.NET 8 RC 1
Typ av ändring
Den här ändringen är en beteendeförändring.
Orsak till ändring
BinaryFormatter serialisering är föråldrad i .NET 8 och senare versioner. All användning av BinaryFormatter anses osäker och utlöser ett undantag vid körning. Eftersom anpassade kompileringshändelser i MSBuild använder BinaryFormatterskulle bygget krascha om du använde dessa händelser i din version. Det nya byggfelet ger en mer elegant misslyckande.
Rekommenderad åtgärd
Använd någon av följande nyligen introducerade, inbyggda händelser för utökningsbarhet i stället för din anpassade härledda bygghändelse:
- ExtendedCustomBuildEventArgs
 - ExtendedBuildErrorEventArgs
 - ExtendedBuildMessageEventArgs
 - ExtendedBuildWarningEventArgs
 
Du kan också tillfälligt inaktivera kontrollen genom att uttryckligen ange miljövariabeln MSBUILDCUSTOMBUILDEVENTWARNING till något annat än 1.