はじめに
.NETCore3.0になりrazorのViewがプリコンパイルされるようになりました
発行時にはパフォーマンス向上などメリットもあるのですが、開発時はViewを変更するたびに再起動しなければ反映されないので非常に面倒です
2.2以前のようにViewのcshtmlの更新が即座に反映される方法を調査しました
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
nugetで Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilationをインストールします
Startup.csを書き換える
services.AddControllersWithViews()
上記コードを下記のように書き換えます
.NETCoreでも#if DEBUG
を使うことでデバック時のみ実行されるブロックを定義できます
#if DEBUG services.AddControllersWithViews().AddRazorRuntimeCompilation(); #else services.AddControllersWithViews(); #endif
おわりに
これでViewを変更後、ブラウザを再更新すると変更が反映されるようになりました