根据 the documentation,默认情况下,Razor 视图应在更改 ASP.NET Core 3.0 的本地环境时重新编译。
但是,我的项目并没有在本地执行此操作。如果我在本地调试时更改视图并刷新,则不会反映更改。我必须停止解决方案,重新运行,然后查看更改。
我在 Visual Studio 2019 上的默认 ASP.NET Core Web 应用程序模板上使用 Razor 页面使用 ASP.NET Core 3.0.0 Preview 2 执行此操作。知道我是否需要更改设置以启用此功能?
.AddRazorRuntimeCompilation();
谢谢!
对于 ASP.NET Core 3 发行版:
services.AddControllersWithViews().AddRazorRuntimeCompilation();
https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.0
它也可以仅针对本地开发有条件地启用,引用自链接:
可以启用运行时编译,使其仅可用于本地开发。以这种方式有条件地启用可确保发布的输出: 使用已编译的视图。体积更小。不在生产环境中启用文件观察器。
public Startup(IConfiguration configuration, IWebHostEnvironment env)
{
Configuration = configuration;
Env = env;
}
public IWebHostEnvironment Env { get; set; }
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
IMvcBuilder builder = services.AddRazorPages();
#if DEBUG
if (Env.IsDevelopment())
{
builder.AddRazorRuntimeCompilation();
}
#endif
}
好的,它看起来还不支持:(
删除了运行时编译由于清理了 ASP.NET Core 共享框架以不依赖于 Roslyn,因此在此预览版本中也删除了对页面和视图的运行时编译的支持。相反,页面和视图的编译是在构建时执行的。在未来的预览更新中,我们将提供一个 NuGet 包,用于选择性地在应用中启用运行时编译支持。
您可以在此处阅读有关此问题的更多信息https://github.com/aspnet/Announcements/issues/343
需要运行时编译或重新编译 Razor 文件的应用程序应该:
添加对 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 包的引用。它将作为 3.0.0-preview3 版本的一部分提供。
更新应用程序的 ConfigureServices 以包含对 AddMvcRazorRuntimeCompilation 的调用:
AddMvcRazorRuntimeCompilation
是 AddRazorRuntimeCompilation
与 ASP.Net Core 3.0 Preview 4
在 ASP.NET Core
3 中重新获取运行时视图编译
参考 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 调用 services.AddMvc().AddRazorRuntimeCompilation() 如果 Microsoft.CodeAnalysis.Common 包上存在版本不匹配,请移除 Microsoft.VisualStudio.Web.CodeGeneration.Design
使用 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
包启用运行时编译。要启用运行时编译,应用程序必须:
安装 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet 包。更新项目的 Startup.ConfigureServices 方法以包含对 AddRazorRuntimeCompilation 的调用:
services
.AddControllersWithViews()
.AddRazorRuntimeCompilation();
https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.0
要在 ASP.NET Core 3.1 中恢复运行时 Razor 视图编译,请执行以下操作:
安装 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet 包。更新项目的 Startup.ConfigureServices 方法以包含对 AddRazorRuntimeCompilation 的调用。 services.AddRazorPages().AddRazorRuntimeCompilation(); ASP.NET Core 3.1 中的 Razor 文件编译
第 1 步:从 NuGet Package Manager for Solution 安装以下软件包。
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
https://i.stack.imgur.com/tDOmv.jpg
第 2 步:在 Startup.cs 文件的 ConfigureServices 中添加以下代码
services.AddControllersWithViews().AddRazorRuntimeCompilation();
https://i.stack.imgur.com/qmjv3.jpg
保存页面,然后刷新客户端浏览器。
如果您使用的是 Razor,请添加 services.AddRazorPages().AddRazorRuntimeCompilation(); 的代码
在 .NET Core 3.1 中,您需要禁用 views.dll
文件的生成。
将以下代码添加到您的 .csproj 文件(在项目的根目录中):
在此之后,再次发布并运行它。它会起作用的。
<RazorCompileOnBuild>false</RazorCompileOnBuild> <RazorCompileOnPublish>false</RazorCompileOnPublish> <CopyRefAssembliesToPublishDirectory>false</CopyRefAssembliesToPublishDirectory>
中只需要以下标记所有其他 2 &还需要3个步骤
为本地开发配置运行时编译的最简单方法是更新 launchSettings.json
中的启动配置文件。此方法无需更改代码即可配置在本地运行的项目(不会影响您的生产)。
请参阅the official documentation:
安装 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet 包。修改 launchSettings.json 中的启动配置文件 environmentVariables 部分:验证 ASPNETCORE_ENVIRONMENT 是否设置为“开发”。将 ASPNETCORE_HOSTINGSTARTUPASSEMBLIES 设置为“Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation”。
例子:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:57676",
"sslPort": 44364
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
}
},
"RazorPagesApp": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
}
}
}
}
只是一个补充说明 - 您可能只想有条件地启用此运行时编译,以便发布的输出:
使用编译视图。
体积更小。
不在生产环境中启用文件观察器。
Conditionally enable runtime compilation