Msbuildタスクでビューをコンパイルして、コンパイル時エラーが発生していないかどうか確認できるようにしたいのですが…コンパイル時。何か案は?
私は率直に言ってRazorGeneratornugetパッケージをお勧めします。これにより、ビューを保存するときに.designer.cs
ファイルが生成され、ビューのコンパイル時エラーが発生するだけでなく、それらもアセンブリにプリコンパイルされ(=ウォームアップが速く)、Resharperは追加のヘルプも提供します。
これを使用するには、ASP.NET MVCプロジェクトにRazorGeneratornugetパッケージを含め、 "Razor Generatorをインストールします "[ツール]→[機能拡張と更新]の項目の下の拡張子。
私たちはこれを使用しており、このアプローチでのコンパイルあたりのオーバーヘッドはずっと少なくなっています。これに加えて、おそらく.NET Demon by RedGateをお勧めします。
お役に立てれば。
RC1用のReadme Word文書から(googleで索引付けされていません)
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
"/仮想/アプリケーション/パス/または/パス/ In/IIS /メタベース"は次のようになります。 "/ MyApp "または"/ lm/w3svc2/1/root / "
また、MSDNにAspNetCompilerタスクがあり、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ファイルに含まれる可能性のあるコンパイラエラーを検出します。それが私たちがすることです...
ASP.NET MVCの次のリリース(1月かそこらで利用可能)には、ビューをコンパイルするMSBuildタスクがあるはずですので、しばらくお待ちください。
発表 を参照してください
ここで与えられた答えはいくつかのMVCバージョンのために働くが他のためには働かない。
単純な解決策はMVC1には有効でしたが、MVC2にアップグレードする際にビューがコンパイルされなくなりました。これはウェブサイトのプロジェクトファイルのバグによるものです。 Haackedの記事を見てください。
これを参照してください。 http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx
ビルド>コード分析の実行
ホットキー: Alt+F11
かみそりのエラーをキャッチするのに役立ちました。
Visual Studioの Productivity Power Tools (free)拡張子を使用するは少し助けになります。特にSolution Error Visualizer
機能。それを使用すると、コンパイルエラーがソリューションエクスプローラ(エラーが検出されたソースファイル)に視覚的にマークされます。ただし、何らかの理由で、この機能はコード内の他の場所の他のエラーと同様には機能しません。
MVCビューでは、コンパイル時のエラーはそれぞれの.csファイルで赤で下線が引かれますが、ソリューションエクスプローラでこれらのエラーを通知することは上方向には伝播されません(含まれているソースファイルでさえも)。
前の文を修正してくれてBlueClouds
に感謝します。
これを拡張機能のgithubプロジェクトの issue として報告したところです。