Sdílet prostřednictvím


Události vlastních odvozených sestavení ve nástroji MSBuild jsou zastaralé

Vlastní odvozené události sestavení u jakékoli podtřídy BuildEventArgs byly z důvodu rozšiřitelnosti sestavení (především v případě vlastních úloh) označeny jako zastaralé.

Předchozí chování

Dříve jste mohli tyto typy odvodit z jakékoli podtřídy BuildEventArgs a používat je volně ve vlastních úkolech a dalších bodech rozšiřitelnosti sestavení.

Nové chování

Počínaje rozhraním .NET 8 se objeví chyba sestavení, pokud váš kód používá jakýkoli typ odvozený z BuildEventArgs a sestavujete pomocí verze .NET 8 nástroje MSBuild, tedy z příkazového řádku:

Používání nezabezpečeného BinaryFormatteru při serializaci vlastního typu události 'MyCustomBuildEventArgs'. Tato funkce bude brzy zastaralá. Místo toho použijte extended*EventArgs. Další informace: https://aka.ms/msbuild/eventargs.

V .NET 10 se chybová zpráva změnila na:

Vlastní typ události MyCustomBuildEventArgs není podporován, protože všechny vlastní typy událostí byly zastaralé. Místo toho použijte extended*EventArgs. Další informace: https://aka.ms/msbuild/eventargs.

Od sady Visual Studio verze 17.10 platí stejné chování pro sestavení v sadě Visual Studio.

Verze byla představena

.NET 8 RC 1

Typ změny

Tato změna je změna chování.

Důvod změny

BinaryFormatter serializace je zastaralá v .NET 8 a novějších verzích. Jakékoli použití BinaryFormatter se považuje za nezabezpečené a vyvolá výjimku za běhu. Vzhledem k tomu, že se používají BinaryFormattervlastní odvozené události sestavení NÁSTROJE MSBuild, dojde k chybovému ukončení sestavení, pokud jste tyto události použili v sestavení. Nová chyba sestavení umožňuje hladší selhání.

Místo vlastní odvozené události sestavení použijte jednu z následujících nově zavedených předdefinovaných událostí pro rozšiřitelnost:

Případně můžete dočasně zakázat kontrolu tím, že explicitně nastavíte proměnnou MSBUILDCUSTOMBUILDEVENTWARNING prostředí na jinou hodnotu než 1.

Ovlivněná rozhraní API