Поделиться через


Свойство PreserveCompilationContext не настроено по умолчанию

PreserveCompilationContext — это свойство MSBuild, которое указывает, что проектам .NET Core необходимо вносить в файл зависимости приложения (DEPS) дополнительное содержимое о том, как было скомпилировано приложение. Оно в основном используется для поддержки сценариев компиляции во время выполнения.

До появления .NET 6 свойству PreserveCompilationContext присваивалось значение true для всех приложений, предназначенных для пакетов SDK для Razor (Microsoft.NET.Sdk.Razor) и веб-пакетов SDK (Microsoft.NET.Sdk.Web). Начиная с версии .NET 6, это свойство больше не настраивается по умолчанию. Однако такие пакеты, как Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation, настраивают это свойство нужным образом.

Представленные версии

ASP.NET Core 6.0

Старое поведение

Файл зависимостей содержит контекст компиляции.

Новое поведение

Файл зависимостей не содержит контекст компиляции.

Причина изменения

Это изменение улучшает производительность сборки и уменьшает время запуска, а также сокращает размер выходных данных сборки ASP.NET Core.

Если в приложении требуется эта возможность и нет ссылки на пакет, который настраивает нужное свойство, добавьте свойство PreserveCompilationContext в файл проекта.

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

Затронутые API

Нет.