2011-09-16 15 views
4

をコンパイルするから、私のASP.NET MVCアプリケーションを防ぐ:のVisual Studioの「公開」機能は、FTPは、Visual Studioで私のASP.NET MVCアプリケーションを公開するときに、私は奇妙な問題を気づいた

公開した後、それがコンパイルされません。私はこのエラーを取得する:特定のセクションを含むWeb.configファイルは、プロジェクトのフォルダ階層のルートよりも深いとき私の研究から

It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.

は、これまでのところ、このエラーは、一般的に発生します。

まあ、それは私がこれらのフォルダで見つかった階層に深いいくつかのWeb.configファイルを持っている判明:

  • [プロジェクトフォルダ] \ OBJ \リリース\パッケージ\ PackageTmp
  • [プロジェクトフォルダ] \ OBJ \リリース\ TransformWebConfig元
  • [プロジェクトフォルダ] \ \ OBJ \リリース\ TransformWebConfig \問題は、私はこれらの場所にこれらのファイルを入れていない、ある

形質転換しました。それらは公開プロセス(特に、FTP公開)中にそこにコピーされます。 Web.configsを手動で削除(またはソリューションを再構築)すると、もう一度コンパイルできます。 (まあ、通常作品を再構築 - 私は公開後リリースまたはその逆へのデバッグから切り替えた場合、それは失敗します。)

を今、私の質問に:

は私が設定を台無しか何かを行っています間違っているか、これは基本的にちょっとした厄介なことですか?私は心配すべきですか?この問題は修正可能ですか?

+0

デプロイ後に毎回同じことが起こります。objフォルダを削除してからもう一度やり直してください。 –

答えて

5

ウェブプロジェクトの.csprojファイルに<MvcBuildViews>true</MvcBuildViews>を使用していますか?はいの場合は、問題になる可能性があります。それを偽にして、問題はなくなった。

実際にMvcBuildViews機能を使用する場合の別の解決方法については、linkで説明しています。私はそれをテストしなかったが、良いレビューを持っているようだ!

+0

あなたが正しいです、私は 'MvcBuildViews'を有効にしていました。エラーが発生し始めました。私は 'BaseIntermediateOutputPath'を私のソリューションフォルダの1つ上のレベルに設定しようとしましたが、それは問題を完全に解決しました。ご協力いただきありがとうございます。 – devuxer

関連する問題