回答:
率直に言って、RazorGenerator nugetパッケージをお勧めします。そうすることで、ビュー.designer.cs
を保存したときにビューにファイルが生成され、ビューのコンパイル時エラーが発生するだけでなく、ビューもアセンブリにプリコンパイル(=ウォームアップの高速化)され、Resharperは追加のヘルプも提供します。
これを使用するには、ASP.NET MVCプロジェクトにRazorGenerator nugetパッケージを含め、[ ツール]→[拡張機能と更新]の下の[ Razor Generator ]拡張機能をインストールします。
私たちはこれを使用し、このアプローチでのコンパイルごとのオーバーヘッドははるかに少なくなります。これに加えて、コンパイル時間への影響を大幅に減らすRedGateの.NET Demonをおそらくお勧めします。
お役に立てれば。
RC1のREADMEワードドキュメントから(グーグルによって索引付けされていません)
ASP.NETコンパイラのビルド後のステップ
現在、ビューファイル内のエラーは実行時まで検出されません。コンパイル時にこれらのエラーを検出できるように、ASP.NET MVCプロジェクトにMvcBuildViewsプロパティが含まれるようになりました。これはデフォルトで無効になっています。このプロパティを有効にするには、次の例に示すように、プロジェクトファイルを開き、MvcBuildViewsプロパティをtrueに設定します。
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
注 この機能を有効にすると、ビルド時間にオーバーヘッドが追加されます。
次の手順を実行することで、MVCの以前のリリースで作成されたプロジェクトを更新して、ビューのビルド時の検証を含めることができます。
<PropertyGroup>
。
<MvcBuildViews>true</MvcBuildViews>
<Target Name="AfterBuild">
要素のコメントを解除し、次のように変更します。<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
これにはaspnet_compilerを使用できます。
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -v /Virtual/Application/Path/Or/Path/In/IIS/Metabase -p C:\Path\To\Your\WebProject -f -errorstack C:\Where\To\Put\Compiled\Site
ここで、 " / Virtual / Application / Path / Or / Path / In / IIS / Metabase "は次のようになります: " / MyApp "または " / lm / w3svc2 / 1 / root / "
また、MSDN にはAspNetCompiler Taskがあり、aspnet_compilerをMSBuildと統合する方法を示しています。
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="PrecompileWeb">
<AspNetCompiler
VirtualPath="/MyWebSite"
PhysicalPath="c:\inetpub\wwwroot\MyWebSite\"
TargetPath="c:\precompiledweb\MyWebSite\"
Force="true"
Debug="true"
/>
</Target>
</Project>
また、Resharperを使用している場合は、Solution Wide Analysisをアクティブにすることができ、aspxファイルにある可能性のあるコンパイラエラーを検出します。それが私たちがすることです...
ここで与えられた答えは、一部のMVCバージョンでは機能しますが、他のバージョンでは機能しません。
シンプルなソリューションはMVC1で機能しましたが、MVC2へのアップグレード時にビューがコンパイルされなくなりました。これは、Webサイトのプロジェクトファイルのバグが原因でした。こちらのハッキングされた記事をご覧ください。
これを参照してください:http : //haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx
ビルド>コード分析の実行
ホットキー:Alt+F11
Razorエラーをキャッチするのに役立ちました。
Visual StudioのProductivity Power Tools(無料)拡張機能を使用すると、少し役立ちます。具体的には、Solution Error Visualizer
機能。これを使用すると、コンパイルエラーはソリューションエクスプローラー(エラーが見つかったソースファイル内)で視覚的にマークされます。ただし、何らかの理由で、この機能はコードの他の場所の他のエラーと同様に機能しません。
MVCビューでは、コンパイル時のエラーはそれぞれの.csファイルで赤の下線が引かれますが、これらのエラーの通知はソリューションエクスプローラーでは上向きに伝達されません(含まれているソースファイルでさえも伝達されません)。
BlueClouds
以前の発言を訂正していただきありがとうございます。
これを拡張機能のgithubプロジェクトの問題として報告しました。