Udostępnij za pośrednictwem


PreserveCompilationContext nie skonfigurowane domyślnie

PreserveCompilationContext to właściwość MSBuild, która powoduje, że projekty platformy .NET Core emitują dodatkową zawartość do pliku zależności aplikacji (deps) o sposobie kompilowania aplikacji. Jest to używane głównie do obsługi scenariuszy kompilacji w czasie wykonywania.

Przed .NET 6, PreserveCompilationContext ustawiono wartość true dla wszystkich aplikacji, które korzystają z Razor (Microsoft.NET.Sdk.Razor) i Web (Microsoft.NET.Sdk.Web) SDKs. Począwszy od platformy .NET 6, ta właściwość nie jest już domyślnie skonfigurowana. Jednak pakiety, takie jak Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation konfigurują tę właściwość według wymagań.

Wersja wprowadzona

ASP.NET Core 6.0

Stare zachowanie

Plik zależności zawiera kontekst kompilacji.

Nowe zachowanie

Plik zależności nie zawiera już kontekstu kompilacji.

Przyczyna zmiany

Ta zmiana poprawia wydajność kompilacji i czas uruchamiania oraz zmniejsza rozmiar danych wyjściowych kompilacji ASP.NET Core.

Jeśli aplikacja wymaga tej funkcji i nie odwołuje się do pakietu, który konfiguruje właściwość, dodaj PreserveCompilationContext właściwość do pliku projektu.

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

Interfejsy API, których dotyczy problem

Żaden.