Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Niestandardowe zdarzenia kompilacji pochodnych dla dowolnej podklasy BuildEventArgs przez dowolną rozszerzalność kompilacji (głównie niestandardowe zadania) zostały wycofane.
Poprzednie zachowanie
Wcześniej można było pochodzić z dowolnej podklasy BuildEventArgs i używać tych typów swobodnie w zadaniach niestandardowych i innych punktach rozszerzalności kompilacji.
Nowe zachowanie
Począwszy od platformy .NET 8, zostanie wyświetlony błąd kompilacji, jeśli kod używa dowolnego typu pochodzącego z BuildEventArgs, a kompilację wykonujesz przy użyciu programu MSBuild w wersji .NET 8, czyli przez interfejs wiersza polecenia.
Użycie niezabezpieczonego elementu BinaryFormatter podczas serializacji niestandardowego typu zdarzenia "MyCustomBuildEventArgs". Wkrótce zostanie to przestarzałe. Zamiast tego powinieneś użyć Extended*EventArgs. Więcej informacji: https://aka.ms/msbuild/eventargs.
W programie .NET 10 komunikat o błędzie został zmieniony na:
Niestandardowy typ zdarzenia "MyCustomBuildEventArgs" nie jest obsługiwany, ponieważ wszystkie niestandardowe typy zdarzeń zostały uznane za przestarzałe. Zamiast tego powinieneś użyć Extended*EventArgs. Więcej informacji: https://aka.ms/msbuild/eventargs.
Począwszy od programu Visual Studio w wersji 17.10, to samo zachowanie dotyczy kompilacji w programie Visual Studio.
Wersja wprowadzona
.NET 8 RC 1
Typ zmiany
Ta zmiana jest zmianą behawioralną.
Przyczyna zmiany
BinaryFormatter serializacja jest przestarzała na platformie .NET 8 i nowszych wersjach. Każde użycie BinaryFormatter jest uznawane za niezabezpieczone i zgłasza wyjątek w czasie wykonywania. Ponieważ niestandardowe zdarzenia kompilacji pochodnej programu MSBuild używają BinaryFormatterpolecenia , kompilacja uległa awarii w przypadku użycia tych zdarzeń w kompilacji. Nowy błąd kompilacji zapewnia bardziej eleganckie niepowodzenie.
Zalecana akcja
Użyj jednego z następujących nowo wprowadzonych wbudowanych zdarzeń na potrzeby rozszerzalności zamiast niestandardowych zdarzeń kompilacji pochodnej:
- ExtendedCustomBuildEventArgs
- ExtendedBuildErrorEventArgs
- ExtendedBuildMessageEventArgs
- ExtendedBuildWarningEventArgs
Alternatywnie można tymczasowo wyłączyć sprawdzanie, jawnie ustawiając zmienną środowiskową MSBUILDCUSTOMBUILDEVENTWARNING na inną wartość niż 1.