非推奨となった MSBuild カスタム派生ビルド イベント
ビルド拡張性 (主にカスタム タスク) による BuildEventArgs の任意のサブクラスのカスタム派生ビルド イベントは非推奨になりました。
以前の動作
以前は、BuildEventArgs のサブクラスから派生し、カスタム タスクやその他のビルド拡張性ポイントでこれらの型を自由に使用できました。
新しい動作
.NET 8 以降では、コードで BuildEventArgs から派生した型を使用し、.NET 8 バージョンの MSBuild を使用して、つまり、コマンド ラインからビルドした場合、以下のビルド エラーが発生します。
カスタムイベントの種類 'MyCustomBuildEventArgs' のシリアル化中の安全でない BinaryFormatter の使用。 これは間もなく非推奨になります。 代わりに Extended*EventArgs を使用してください。 詳細情報: https://aka.ms/msbuild/eventargs
Visual Studio からビルドする場合、MSBUILDCUSTOMBUILDEVENTWARNING
環境変数を 1 (Visual Studio バージョン 17.8 以降で使用可能) に設定してオプトインしない限り、動作に変更はありません。
導入されたバージョン
.NET 8 RC 1
変更の種類
この変更は、動作変更です。
変更理由
BinaryFormatter シリアル化は、.NET 8 以降のバージョンでは廃止されています。 BinaryFormatter を使用すると、実行時に例外がスローされます。 MSBuild カスタム派生ビルド イベントでは BinaryFormatter を使用するため、ビルドでこれらのイベントを使用すると、ビルドがクラッシュします。 新しいビルド エラーにより、よりグレースフルなエラーが発生します。
推奨される操作
カスタム派生ビルド イベントの代わりに、拡張性のために新しく導入された次のビルトイン イベントのいずれかを使用します。
- ExtendedCustomBuildEventArgs
- ExtendedBuildErrorEventArgs
- ExtendedBuildMessageEventArgs
- ExtendedBuildWarningEventArgs
または、環境変数の MSBUILDCUSTOMBUILDEVENTWARNING
を 1
以外に明示的に設定することで、チェックを一時的に無効にすることもできます。
影響を受ける API
.NET