PreserveCompilationContext が既定で構成されない

PreserveCompilationContext は、.NET Core プロジェクトがアプリのコンパイル方法に関する追加のコンテンツをアプリケーションの依存ファイル (deps) に出力する MSBuild プロパティです。 これは主に、実行時のコンパイル シナリオをサポートするために使用されます。

.NET 6 より前は、PreserveCompilationContext は、Razor (Microsoft.NET.Sdk.Razor) と Web (Microsoft.NET.Sdk.Web) SDK を対象とするあらゆるアプリに対して、true に設定されていました。 .NET 6 以降、このプロパティは既定では構成されなくなりました。 ただし、Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation などのパッケージでは、このプロパティが必要に応じて構成されます。

導入されたバージョン

ASP.NET Core 6.0

以前の動作

依存関係ファイルには、コンパイル コンテキストが含まれます。

新しい動作

依存関係ファイルには、コンパイル コンテキストが含まれなくなりました。

変更理由

この変更により、ビルド パフォーマンスと起動時間が改善され、ASP.NET Core のビルド出力のサイズが縮小されます。

アプリでこの機能が必要になるが、プロパティを構成するパッケージが参照されない場合、プロジェクト ファイルに PreserveCompilationContext プロパティを追加します。

<PropertyGroup>
   <PreserveCompilationContext>true</PreserveCompilationContext>
</PropertyGroup>

影響を受ける API

なし。