MVC 3 rc1 Razor cshtml ファイルのビルド アクションをコンパイルに設定する際に問題がありますか?
-
26-09-2019 - |
質問
Visual Studio のパブリッシュ/デプロイをサポートするために、デフォルトのビルド アクションが「なし」から「コンテンツ」に変更されました。
特定のプロジェクトについては、Visual Studio のパブリッシュ/デプロイ メソッドを使用せず、コマンド ラインからコンパイルする必要もありません。
ビルド アクションを「コンパイル」に設定してもコンパイルは行われるようですが、コンパイル時のエラーや cshtml のコーディング ミスに対して警告が生成されるという利点もあります。
これは、通常の実行時のみのエラーに比べて大きな利点のように思えます。
ビルドアクションを「コンパイル」に変更すると、後でどのような問題が発生するか知っている人はいますか?
どうもありがとう..
編集: VS の展開やコマンドラインのコンパイル以外に、将来どのような問題に遭遇するかわかりませんが、安全のため、marcind がコメントで述べているプリコンパイル オプションを選択しました。それを最も近い答えとしてマークしました。
解決
Razor ファイルを "コンパイル" に設定しても機能しないはずです (そして、機能するということに驚きました)。これは、"コンパイル" としてマークされたファイルがプロジェクトの種類に適した言語コンパイラに渡されるためです。また、ほとんどの Razor ファイルは有効な C# または VB ソース ファイルではないため、コンパイラ エラーが発生します。
VS が何か奇妙なことをしているように見えますが、IDE からコンパイルするときに常にエラーが表示されるわけではありません。ただし、コマンド ラインからプロジェクトを直接コンパイルすると、常に失敗します。
あなたの質問に答えるために
- 機能しないから
- それは(今でも、あるいは後でも)うまくいきません。実際、サイトを公開/展開するときに、Razor ファイルはコピーされません。
技術的なことを言うと、「ビルド アクション」は「コンテンツ」である必要があります。それが asp.net の公開/展開の仕組みであるからです (以前のプレビューでは、VS は実際には Razor ファイルについて何も認識しておらず、それがデフォルトであるため、「なし」でした)行動;「変更」の目的は、物事をうまく機能させることでした)。