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.
Aanbevolen actie
Gebruik een van de volgende nieuwe, ingebouwde gebeurtenissen voor uitbreidbaarheid in plaats van uw aangepaste afgeleide buildgebeurtenis:
- ExtendedCustomBuildEventArgs
- ExtendedBuildErrorEventArgs
- ExtendedBuildMessageEventArgs
- ExtendedBuildWarningEventArgs
U kunt de controle ook tijdelijk uitschakelen door de omgevingsvariabele MSBUILDCUSTOMBUILDEVENTWARNING
expliciet in te stellen op iets anders dan 1
.