web-dev-qa-db-ja.com

.NET Core 3.0-プレビュー2-変更時にRazorビューが自動的に再コンパイルされない

https://docs.Microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3. によると、デフォルトでは、かみそりビューはローカルでの変更時に再コンパイルする必要がありますasp.netコア3.0の環境。

ただし、私のプロジェクトではこれをローカルで実行していません。ローカルでデバッグしているときにビューを変更して更新すると、変更が反映されません。ソリューションを停止して再実行し、変更を確認する必要があります。

かみそりのページを使用して、asp.netコア3.0.0プレビュー2を備えたVisual Studio 2019のデフォルトのASP.NETコアWebアプリケーションテンプレートでこれを行っています。この機能を有効にするために設定を変更する必要がある場合、何か考えはありますか?

2019年11月3日更新3.0フルリリース:この質問には、まだ多くの意見が寄せられています。追加するために引用されているいくつかの回答

services.AddControllersWithViews().AddRazorRuntimeCompilation(); 

microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGetパッケージを追加した後、Startup.csのConfigureServices()関数に追加します。私の場合、私はRazorページのみを使用しているのでAddControllersWithViewsを呼び出さないので、これは私にとってはうまくいきました:

services.AddRazorPages().AddRazorRuntimeCompilation();
50
tarun713

OK、まだサポートされていないようです:(

ランタイムコンパイルの削除Roslynに依存しないようにASP.NET Core共有フレームワークをクリーンアップした結果、このプレビューリリースでは、ページとビューのランタイムコンパイルのサポートも削除されました。代わりに、ページとビューのコンパイルはビルド時に実行されます。将来のプレビューアップデートでは、アプリでランタイムコンパイルサポートをオプションで有効にするためのNuGetパッケージを提供する予定です。

この問題の詳細については、こちらをご覧ください https://github.com/aspnet/Announcements/issues/34

Razorファイルのランタイムコンパイルまたは再コンパイルが必要なアプリケーションは、次のようにする必要があります。

  • Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilationパッケージへの参照を追加します。 3.0.0-preview3リリースの一部として利用できます。
  • アプリケーションのConfigureServicesを更新して、AddMvcRazorRuntimeCompilationへの呼び出しを含めます。
33
Lukáš Kmoch

ASP.NET Core 3リリースバージョンの場合:

   services.AddControllersWithViews().AddRazorRuntimeCompilation();

https://docs.Microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.

29
rauland

ランタイムビューのコンパイルを_ASP.NET Core_ 3に戻すには

  1. リファレンス_Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation_
  2. services.AddMvc().AddRazorRuntimeCompilation()を呼び出す
  3. _Microsoft.VisualStudio.Web.CodeGeneration.Design_パッケージにバージョンの不一致がある場合は、_Microsoft.CodeAnalysis.Common_を削除します
21
Dmitry Pavlov

ランタイムコンパイルは、Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilationパッケージを使用して有効化されます。ランタイムコンパイルを有効にするには、アプリは次の条件を満たす必要があります。

  1. Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGetパッケージをインストールします。

  2. プロジェクトのStartup.ConfigureServicesメソッドを更新して、AddRazorRuntimeCompilationへの呼び出しを含めます。

services
    .AddControllersWithViews()
    .AddRazorRuntimeCompilation();

https://docs.Microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.

14
kevic

ASP.NET Core 3.1でランタイムRazorビューコンパイルを取得するには:

  1. _Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation_ NuGetパッケージをインストールします。
  2. プロジェクトの_Startup.ConfigureServices_メソッドを更新して、AddRazorRuntimeCompilationへの呼び出しを含めます。
  3. services.AddRazorPages().AddRazorRuntimeCompilation();

    ASP.NET Core 3.1でのRazorファイルのコンパイル

4
Naman Upadhyay

追加されたメモ-条件付きでのみこのランタイムコンパイルを有効にして、パブリッシュされた出力を次のようにすることができます。

  • コンパイルされたビューを使用します。
  • サイズが小さいです。
  • 本番環境ではファイルウォッチャーを有効にしません。

条件付きでランタイムコンパイルを有効にする

2
BryanCass