2012-03-15 9 views
3

MvcBuildViews要素をtrueに設定してMVC 3プロジェクトでビューをコンパイルするようにしました。ビルドサーバー上でビューヘルパーを使用してMVC 3ビューをコンパイルできない

しかし、そのため、私たちのビルドサーバーはビルドに失敗しています。私は、考えられる原因の周りを検索していたが、私の問題は、一般的なものとは異なるように思える:

エラー:この場合_Layout.cshtml(xx): The name "Element" does not exist in the current context.

Elementはそののいずれかを呼び出し、我々はヘルパービューを作っているの参照ですメソッド。

何が問題なのでしょうか?

(ところで、ビルドサーバはTFS2010です)

+0

_Layout.cshtmlを表示できますか? –

+0

これは本当に大きなファイルであり、NDA合意のコードを実際に表示することはできません。それでも、あなたがチェックしたかったのは何ですか?エラーの特定の行は何もヘルパーコールではありませんでした。 '@helper PutElement(){@ Element.Method(param、param、param)}' – Alpha

答えて

5

私の問題の根底にある問題が見つかりました。私は誰もが自分の状況から学ぶことができるようにここで更新しています。

TFSビルドサーバーは、プロジェクトを進めるために失敗し続けました。私はMVCプロジェクトを編集して、サーバー上のビューをコンパイルしないようにしました。そのために、私たちはこのすべてを取り、実際の環境にビルドを展開すると、私は非常に同じエラーが私達の展開に飛び出しことがわかっ

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true' AND '$(BuildingInsideVisualStudio)'=='true'"> 

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'"> 

から変更しました環境。私は行って、デプロイパッケージを調べました。ヘルパービューElement.cshtmlは、App_Codeというフォルダにはありませんでした。

再度プロジェクトファイルを開き、そのファイルへの参照を検索しました。私はその特定の参照には、設定が

<None Include="App_Code\Element.cshtml" /> 

代わりに、私はちょうど(それがそのようになった知らんどのように)参照が行われた方法を変更し、すべて

<Content Include="App_Code\Element.cshtml" /> 

の魅力のように働いたことがわかりました。

話の道徳:エラーと言われていますので注意してください。

今私はdevマシンでなぜ失敗しないのか不思議です。おそらく、ビルドサーバに異なる出力フォルダがあり、出力に.cshtmlが見つからないためでしょうか?多分それは他の質問のためのものです...

0
+0

ありがとうございました。私のプロジェクトはMVC 3なので、問題はありません(私はプロジェクトファイルを検証しました)。また、私が得るエラーは一般的に知られているもの(Phil Haackによって説明されたもの)とは異なるようです。 – Alpha

関連する問題