Jiro Laboratory

C#、ASP.NET、JavaScript、Androidとか

MvcBuildViews でビューを事前ビルドするように設定

エラーのある.cshtmlファイルは Visual Studio のエディタで開いている時に限りエラーが表示されますが、ファイルを閉じるとエラーは表示されなくなります。
その状態でアプリを起動して該当のビューを表示しようとすると出てくるのが、よく見るこのエラー画面。

プロジェクトファイルの MvcBuildViews を true に変更することで、このコンパイルエラーを実行時ではなくビルド時に確認することができるようになります。

プロジェクトファイルを編集

プロジェクトファイルに MvcBuildViews という項目がありますのでこれを true に変更します。(初期値はfalse)

修正後の.csproj
<Project ToolsVersion="12.0" DefaultTargets="Build" ・・・>
  <PropertyGroup>
  ・・・
    <MvcBuildViews>true</MvcBuildViews>
  </PropertyGroup>

ちなみにVisual Studioでプロジェクトファイルを編集するには、

  • ソリューションエクスプローラーのプロジェクト名を右クリック > プロジェクトのアンロード
  • プロジェクト名が「利用不可」になるので、再度プロジェクト名を右クリック > 編集 [プロジェクト名].csproj

(またはVisual Studio拡張機能Productivity Power Toolsをインストールしていれば、プロジェクト名を右クリック > Power Commands > Edit Project File でも編集可能)

編集が終わったら、プロジェクト名を右クリック > プロジェクトの再読み込み
を行います。

ビルドを行うと、.cshtml のエラーがビルドエラーとして通知されるようになります。

注意

全てのビューのビルドを行うので、ビューがたくさんある場合はビルドに時間がかかるようになります。
コミットやリリース前に MvcBuildViews を true にして確認、というやり方のほうがいいかもしれません。