VS 2012 Professionalを最近インストールしました。
MVC4 Webプロジェクトをビルドしようとすると。 「ビルド」または「再ビルド」を行うと、カミソリビューでエラーが認識されません。
例:
プロジェクトからネームスペースを削除しました/または名前を変更しました。ソリューションを構築すると、すべてのcsファイルでエラーが発生しましたが、名前空間を変更することで修正しました。ソリューション全体が正常にビルドされます。プロジェクトを実行すると、古いネームスペースがまだ一部のビュー(* .cshtmlファイル)で参照されているため、ネームスペースが見つからないというCompilation Errorが表示されました。
予想されるソリューション:
「ビルド」または「再ビルド」を行うと、このようなエラーが認識され、他のエラーと一緒に表示されます。
これはVS 2010で正常に機能していましたが、設定がありませんか?
前もって感謝します !!アミット
Edit自分で答えを見つけました。質問を投稿するのは早いと思います。
コンパイルすべきではないときにコンパイルするエラーのあるレイザー構文
別の問題
.csprojectファイルで値をTrueに変更した後、プロジェクトのビルドを開始するとエラーが表示されますが、一度に1つのエラーしか表示されません。たとえば、合計3回のビューで5つのエラーがあります。エラーが1つだけ表示されます。 5つのエラーをすべて表示する解決策はありますか?
MVC4 Webプロジェクトをビルドしようとすると。 「ビルド」または「再ビルド」を行うと、カミソリビューでエラーが認識されません。
普通のようです。 Razorビューは、ASP.NETランタイムによって動的にコンパイルされます。コンパイル時にビューを構築したい場合は、次のオプションを.csproj
ファイル:
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
詳細については この記事 をご覧ください。
MmvcBuildViewsタグをRelease PropertyGroupタグの子として追加することをお勧めします。これにより、リリースモードでコンパイルするとき(またはリリースモードで発行するとき)にのみビューがコンパイルされます。これにより、デバッグ中のアプリが高速になります。また、デプロイする前(リリースモードでビルドする場合)にコンパイル時のチェックを取得します。要約すると、両方の長所を活用できます。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
私の経験によると、上記の真の設定に加えて、csprojファイルに以下の設定が存在することを確認する必要があります。
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
デフォルトでは、ビューをコンパイルしません。この機能を有効にできますが、ビルド時間が長くなることに注意してください。
次の手順に従って、ビューのコンパイルを有効にできます。
<MvcBuildViews>false</MvcBuildViews>
そしてtrue
を持つように変更しますその非常にシンプルな答えは、次の手順を実行します。
プロジェクトをアンロード
プロジェクトを編集
検索より:
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
以下に追加
<Target Name="AfterBuild" Condition="'$(Configuration)'!='Debug'">
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
</Target>
それはプロジェクトをアンロードするだけです。構築する
そして、Ur構文が正しく動作することを確認してください。
確信してます。