ASP.Net MVC アプリケーションを公開するときに cs ファイルをデプロイする必要がありますか?
-
19-08-2019 - |
質問
開発マシン上では正常にコンパイルおよび実行できるプロジェクトがありますが、Web サーバー上で実行すると次のエラーが発生します。
パーサー エラー メッセージ:ファイル「/Views/Shared/Main.master.cs」は存在しません。
言及されたファイルはサーバー上に存在しませんが、ファイル '/Views/Shared/Main.master' は存在します。
「Publish」コマンドを使用してプロジェクトをアップロードします。csファイルが足りないのでしょうか?
インタイムコンパイルのみを実行する設定をオフにする必要があるのでしょうか?
解決
この解決策を見つけました。
マスターページには次の属性CodeFile="Main.master.cs"
があります。これをCodeBehind="Main.master.cs"
に置き換えたとき、期待どおりに動作します。
このファイルは元々古いWebアプリケーションからのものでしたが、その違いの意味がわかりません。他の誰かがより良い説明を思い付くことができるなら、私はこれの代わりに彼らの答えを受け入れます。
他のヒント
わかってくれてよかった。 <!> quot; Web Site <!> quot;から変換するときに問題が発生する場合があります。 <!> quot; Webアプリケーション<!> quot;プロジェクトの種類。
http://aspadvice.com /blogs/ssmith/archive/2007/01/24/CodeFile-or-CodeBehind.aspx
通常、ファイルはビンに存在するdllへの参照でマークされます。 Main.masterの継承宣言のApp_Web_nnnnn。 Webサーバー上のそのファイルの場合ですか?参照されたdllはビンに存在しますか?そうでない場合は、本来どおりにプリコンパイルされていない可能性があります。
MVC について見た限りでは、分離コード ページさえ必要ないと思います。
何らかの理由で、アプリ内のすべてのページから参照を削除しました。
また、新しいビューを作成するとき、MVC では分離コード ページも作成されないと思います。(本当に最初から私を投げました!!)