Delen via


Aangepaste msBuild-build-gebeurtenissen afgeschaft

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

Vorig gedrag

Voorheen kon u deze typen vrij gebruiken in BuildEventArgs aangepaste taken en andere uitbreidbaarheidspunten.

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

Als u bouwt vanuit Visual Studio, is er geen wijziging in het gedrag, tenzij u zich aanmeldt door de MSBUILDCUSTOMBUILDEVENTWARNING omgevingsvariabele in te stellen op 1 (beschikbaar in Visual Studio versie 17.8 en hoger).

Versie geïntroduceerd

.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 genereert een uitzondering tijdens runtime. Omdat aangepaste afgeleide build-gebeurtenissen van MSBuild worden gebruikt BinaryFormatter, loopt uw build vast als u deze gebeurtenissen in uw build gebruikt. De nieuwe buildfout biedt een meer elegante fout.

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.

Betrokken API's