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

主に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, 実装技術

執筆者:

関連記事

VBAでケバブ・スネーク・パスカル・キャメル変換

開発の現場では、Excelに定義したクラスやテーブル等の設計内容に基づいて、VBAで自動的にソースコードやSQL文等の成果物を生成したい場合があります。この処理を実装する場合、Excel上の項目名を、 …

wildflyへのwarデプロイの自動化

更新したWebアプリをWildflyにデプロイするのが面倒なのでスクリプトを作成してみました。 前提 実行環境はCentOS Linux 7です。 JavaEEのWebアプリの配布形式であるwarファ …

ASP.NET Core: IHttpClientFactoryの検証用サンプル

本番環境ではあまり使うことはない、検証環境を想定したサンプルを紹介します。 本来のIHttpClientFactoryの使い方や基本的なサンプルは下記を参考にしていただければと思います。 ASP.NE …

WindowsでQRコードを生成(VBScript)

概要 Windows環境でVBScriptを使用してQRコードを生成する方法を紹介します。 このVBScriptは、Excelを起動し、バーコードコントロールを使ってQRコードを生成しています。 動作 …

初心者向けの最低限のviの使い方

新入社員やUnix/Linux未経験がviで苦戦するのをよく見ます。 ネットではコマンドの説明を主とした内容が多く、このような資料を見てviを使うと、モードの違いが分からず、思ったように編集できないこ …