Delen via


MSBuild-afgeleide build-gebeurtenissen zijn afgeschaft

Aangepaste afgeleide buildgebeurtenissen van een subklasse van BuildEventArgs eventuele build-uitbreidbaarheid (voornamelijk aangepaste taken) zijn afgeschaft.

Vorig gedrag

Voorheen kon u van elke subklasse van BuildEventArgs afleiden en deze typen vrij gebruiken in aangepaste taken en andere uitbreidbaarheidspunten voor bouwen.

Nieuw gedrag

Vanaf .NET 8 wordt er een buildfout uitgegeven als uw code gebruikmaakt van een type dat is afgeleid van BuildEventArgs en u bouwt met behulp van de .NET 8-versie van MSBuild, dat wil gezegd, vanaf de opdrachtregel:

Gebruik van onbeveiligde BinaryFormatter tijdens serialisatie van aangepast gebeurtenistype 'MyCustomBuildEventArgs'. Dit wordt binnenkort afgeschaft. Gebruik in plaats daarvan Extended*EventArgs. Meer informatie: https://aka.ms/msbuild/eventargs.

In .NET 10 is het foutbericht gewijzigd in:

Aangepast gebeurtenistype 'MyCustomBuildEventArgs' wordt niet ondersteund omdat alle aangepaste gebeurtenistypen zijn afgeschaft. Gebruik in plaats daarvan Extended*EventArgs. Meer informatie: https://aka.ms/msbuild/eventargs.

Vanaf Visual Studio versie 17.10 geldt hetzelfde gedrag voor builds in Visual Studio.

Geïntroduceerde versie

.NET 8 RC 1

Type wijziging

Deze wijziging is een gedragswijziging.

Reden voor wijziging

BinaryFormatter serialisatie is verouderd in .NET 8 en latere versies. Elk gebruik van BinaryFormatter wordt als onveilig beschouwd en veroorzaakt tijdens runtime een uitzondering. Omdat aangepaste afgeleide build-gebeurtenissen van MSBuild worden gebruikt BinaryFormatter, loopt uw build vast als u deze gebeurtenissen in uw build hebt gebruikt. De nieuwe buildfout biedt een meer sierlijke mislukking.

Gebruik een van de volgende nieuwe, ingebouwde gebeurtenissen voor uitbreidbaarheid in plaats van uw aangepaste afgeleide buildgebeurtenis:

U kunt de controle ook tijdelijk uitschakelen door de omgevingsvariabele MSBUILDCUSTOMBUILDEVENTWARNING expliciet in te stellen op iets anders dan 1.

Betreffende API's