アプリ開発ときどきアウトドア

主にJavaを使ったアプリ開発やトラブルシューティング等のノウハウ、キャンプや登山の紹介や体験談など。

1. システムエンジニアリング ASP.NET Core 実装技術

ASP.NET Core: 変更ページを実行環境に反映

投稿日:2020年3月20日 更新日:

ASP.Net Core(3.0)の開発で、ページ(cshtml)を編集しながらページデザインを確認したい。
既定ではページを変更しても実行環境に反映れずサーバの再起動が必要となり開発効率が悪い。
サーバを再起動しなくてもブラウザで変更ページを確認できる方法を説明します。

設定方法

NuGetで”Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation”パッケージを追加し、次のようにStartup.csのサービス構成でAddRazorRuntimeCompilation()を追加します。
このような設定はあくまでも開発環境のみの使用に留めたいので、デバック時にのみ有効となるよう#if/#else/#endif等のプリプロセッサを使用しています。(DEBUG変数は、ビルドやリリース等のビルド構成プロパティに応じて自動的に設定されます。)

        public void ConfigureServices(IServiceCollection services)
        {
#if !DEBUG
            services.AddControllersWithViews();
#else
            services.AddControllersWithViews().AddRazorRuntimeCompilation();
#endif
        }

なお、この方法はASP.Net Core 3.0以降で有効です。反映できるのはページ変更のみで、コントローラ等のクラスの変更を反映するためにはサーバの再起動が必要です。

参考)ASP.Net Core 2系の変更方法

未検証ですが、ASP.NET Core 2系では、AllowRecompilingViewsOnFileChangeオプションを使用するそうです。

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().AddRazorOptions(options => 
            {
                options.AllowRecompilingViewsOnFileChange = true;
            });
        }

参考)パッケージの追加方法

コマンドラインから実行する方法等もありますが、GUIベースの操作の場合、[ツール]-[NuGetパッケージマネージャー]-[ソリューションのNuGetパッケージの管理]で次のマネージャを開けます。
Razor.RuntimeCompilationを選択し、プロジェクトをチェックして[インストール]をクリックします。



(adsbygoogle = window.adsbygoogle || []).push({});


(adsbygoogle = window.adsbygoogle || []).push({});

-1. システムエンジニアリング, ASP.NET Core, 実装技術

執筆者:

関連記事

JSFラジオボタン・チェックボックスとbootstrap

boostrapでラジオボタンやチェックボックスを使用する場合、div, input, label要素にbootstrapのCSSクラスを指定する必要がある。 JSFでラジオボタンを使用する場合、se …

Javaでサポートする暗号化アルゴリズム

Java暗号化アーキテクチャ Javaで暗号化処理を実装する場合、Java暗号化アーキテクチャ(Java Cryptography Architecture: JCA)と呼ばれるフレームワークを使いま …

PowerPointの削除できない個人情報を消す

PowerPointで「個人情報の削除」を実行するとこで、作成者や会社名等の個人情報を削除できます。しかしながら、特定の項目に入った個人情報については、PowerPointやWindowsの標準機能で …

slf4jで独自ログ項目を追加(MDC)

業務要件、障害発生時の処理追跡や証跡等、ログ出力に特定項目を含めたい場合があります。 共通のログ出力ユーティリティやライブラリを作って、その中でログ出力内容を変更しても良いのですが、MDC(Mappe …

Java正規表現によるパラメータ置換

mybatis-generatorが生成するクエリカスタマイズのために、生成されたクエリ上のパラメータを置換する方法を調べたので記載しておきます。 サンプルプログラム Java言語の場合、標準ライブラ …

プロフィール ゆっきーです。
都内でシステムエンジニアをやっています。
もっと詳細を見る