PreserveCompilationContext 不默认配置

PreserveCompilationContext 是一个 MSBuild 属性,它导致 .NET Core 项目向应用程序的依赖项 (.deps) 文件发出有关如何编译应用的其他内容。 这主要用于支持运行时编译方案。

在 .NET 6 之前,对于所有面向 PreserveCompilationContext (Microsoft.NET.Sdk.true) 和 Web (Microsoft.NET.Sdk.Web) SDK 的应用程序,Razor 均设置为 Razor。 从 .NET 6 开始,默认情况下不再配置此属性。 但是,Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 等包根据需要配置此属性。

已引入的版本

ASP.NET Core 6.0

旧行为

依赖项文件包含编译上下文。

新行为

依赖项文件不再包含编译上下文。

更改原因

此更改可改善生成性能和启动时间,并减小 ASP.NET Core 生成输出的大小。

如果你的应用需要此功能,并且不引用配置该属性的包,请将该 PreserveCompilationContext 属性添加到项目文件。

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

受影响的 API

没有。