asp.net - 要求 - 発行中にプリコンパイルする
ASP.NET MVCでビューをコンパイルする (6)
ASP.NET MVCの次のリリース(1月程度で利用可能)では、ビューをコンパイルするためのMSBuildタスクが必要です。
msbuildタスクでビューをコンパイルして、コンパイル時にエラーが発生していないかどうかを確認してください。 何か案は?
Visual Studioの生産性Power Tools ( 無料 )拡張機能を使用すると少し役に立ちます 。 具体的には、 Solution Error Visualizer
機能です。 これにより、ソリューションエクスプローラ(エラーが見つかったソースファイル内)でコンパイルエラーが視覚的にマークされました。 しかし何らかの理由で、この機能はコード内の他のエラーと同様に動作しません。
MVCビューでは、コンパイル時エラーにはそれぞれの.csファイルで赤色の下線が引き続き表示されますが、これらのエラーの通知はソリューションエクスプローラで上方向には伝播されません(ソースファイルを含んでいない場合もありません)。
BlueClouds
に私の以前の声明を訂正してくれてありがとう。
私は、これを拡張機能のgithubプロジェクトのissueとして報告しました。
ここでの答えは、一部のMVCバージョンでは機能しますが、他のバージョンでは機能しません。
シンプルなソリューションはMVC1で機能しましたが、MVC2にアップグレードするとビューはもはや複雑にならなくなりました。 これはウェブサイトプロジェクトファイルのバグが原因でした。 このHaackedの記事を参照してください。
これを見てください: http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx : http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx
このために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タスクがあり、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>
ビルド>実行コード分析
ホットキー : Alt + F11
私はRazorのエラーをキャッチするのに役立ちました。
私は率直に言って、 RazorGeneratorナゲットパッケージをお勧めします。 あなたのビューには保存時に生成された.designer.cs
ファイルがあり、ビューのコンパイル時にエラーが発生するだけでなく、アセンブリにもプリコンパイルされます(より速いウォームアップ)。また、Resharperはいくつかの追加のヘルプも提供します。
これを使用するには、ASP.NET MVCプロジェクトのRazorGenerator Nugetパッケージを含め、 [ ツール]→[拡張機能と更新]の項目の下にある " Razor Generator "拡張機能をインストールします 。
これを使用し、このアプローチでのコンパイルごとのオーバーヘッドははるかに少なくなります。 さらに、RedGateの.NET Demonをお勧めします 。これは、コンパイル時の影響を大幅に軽減します。
お役に立てれば。