설명서 에 따르면 Razor 뷰는 기본적으로 ASP.NET Core 3.0의 로컬 환경에서 변경시 다시 컴파일해야합니다.
그러나 내 프로젝트는 이것을 로컬에서 수행하지 않습니다. 로컬에서 디버깅 할 때보기를 변경하고 새로 고치면 변경 사항이 반영되지 않습니다. 솔루션을 중지하고 다시 실행 한 다음 변경 사항을 확인해야합니다.
Razor 페이지를 사용하여 ASP.NET Core 3.0.0 Preview 2를 사용하는 Visual Studio 2019의 기본 ASP.NET Core 웹 애플리케이션 템플릿에서이 작업을 수행하고 있습니다. 이 기능을 활성화하기 위해 설정을 변경해야하는지 아십니까?
3.0 전체 릴리스를 위해 2019 년 11 월 업데이트 :
이 질문은 여전히 많은 견해를 얻고 있습니다. 추가하기 위해 몇 가지 답변이 인용되었습니다.
services.AddControllersWithViews().AddRazorRuntimeCompilation();
당신에 ConfigureServices()
함수 Startup.cs
, 가산 후 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
NuGet 패키지를. 제 경우에는 Razor Pages 만 사용하고 있으므로 AddControllersWithViews()
. 대신 이것은 나를 위해 일했습니다.
services.AddRazorPages().AddRazorRuntimeCompilation();
답변
알겠습니다. 아직 지원되지 않는 것 같습니다.
런타임 컴파일이 제거됨 Roslyn에 의존하지 않도록 ASP.NET Core 공유 프레임 워크를 정리 한 결과 페이지 및보기의 런타임 컴파일에 대한 지원도이 미리보기 릴리스에서 제거되었습니다. 대신 페이지 및보기의 컴파일이 빌드시 수행됩니다. 향후 미리보기 업데이트에서는 앱에서 런타임 컴파일 지원을 선택적으로 활성화하기위한 NuGet 패키지를 제공 할 것입니다.
https://github.com/aspnet/Announcements/issues/343 에서 문제에 대한 자세한 내용을 읽을 수 있습니다.
런타임 컴파일 또는 Razor 파일 재 컴파일이 필요한 애플리케이션은 다음을 수행해야합니다.
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
패키지에 대한 참조를 추가하십시오 . 3.0.0-preview3 릴리스의 일부로 사용할 수 있습니다 .- 에
ConfigureServices
대한 호출을 포함 하도록 애플리케이션을 업데이트합니다AddMvcRazorRuntimeCompilation
.
답변
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
3 에서 런타임 뷰 컴파일을 다시 가져 오려면
- 참고
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
- 요구
services.AddMvc().AddRazorRuntimeCompilation()
- 패키지
Microsoft.VisualStudio.Web.CodeGeneration.Design
에 버전 불일치가있는 경우 제거Microsoft.CodeAnalysis.Common
답변
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()
;
답변
1 단계 : 솔루션 용 NuGet 패키지 관리자에서 아래 패키지를 설치합니다.
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
2 단계 : Startup.cs 파일의 ConfigureServices에 아래 코드 추가
services.AddControllersWithViews (). AddRazorRuntimeCompilation ();
페이지를 저장 한 다음 클라이언트 브라우저를 새로 고칩니다.
Razor를 사용하는 경우 services.AddRazorPages (). AddRazorRuntimeCompilation ();에 대한 코드를 추가합니다.
답변
추가 된 참고 사항-이 런타임 컴파일을 조건부로만 활성화하여 게시 된 출력이 다음과 같이되도록 할 수 있습니다.
- 컴파일 된 뷰를 사용합니다.
- 크기가 더 작습니다.
- 프로덕션에서 파일 감시자를 활성화하지 않습니다.