Razor 執行時編譯已過時,不建議用於生產場景。 針對生產案例,請使用預設的建置時間編譯。 針對開發場景,請改用“Hot Reload”。
推出的版本
.NET 10 預覽版 7
先前的行為
過去,你可以在應用程式執行時使用 Razor 執行時編譯 來重新編譯 .cshtml 檔案。 這表示您不需要重新啟動應用程式,變更才會生效。
新行為
從 .NET 10 開始,使用 受影響的 API 會產生具有診斷標識符 ASPDEPR003的編譯程式警告:
警告ASPDEPR003:Razor 執行時編譯已過時,不建議用於生產場景。 針對生產案例,請使用預設建置時間編譯。 針對開發案例,請改用熱重載。 如需詳細資訊,請瀏覽:https://aka.ms/aspnet/deprecate/003。
破壞性變更的類型
這項變更可能會影響 來源相容性。
變更的原因
Razor 執行時編譯已被 Hot Reload 取代,Hot Reload 是過去幾年來一直被推薦的方法。 此變更更明確表示 Razor 執行時編譯不支援新功能,不應再使用。
建議的動作
移除對 AddRazorRuntimeCompilation 的調用,並改用 Hot Reload。
受影響的 API
- Microsoft.AspNetCore.Mvc.ApplicationParts.AssemblyPartExtensions
- Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcBuilderExtensions.AddRazorRuntimeCompilation
- Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.AddRazorRuntimeCompilation
- Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.FileProviderRazorProjectItem
- Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.MvcRazorRuntimeCompilationOptions