1

コンパイル済みのビューを出荷したい。指定に関するいくつかの質問を見てきました

csproj で以下を変更する

<MvcBuildViews>true</MvcBuildViews>.

そしてweb.configを変更します(私はエンティティフレームワークを使用しているため)

<compilation debug="true" targetFramework="4.0">
      <buildProviders>
        <remove extension=".edmx"/>
      </buildProviders>
 </compilation>

期待していたコンパイルに時間がかかるようになりましたが、正しく動作しているかどうかはわかりません

  1. 正しく構成されていれば、コンパイル前の検証を行うだけでなく、実際にビューをバイナリにビルドする必要があると言っているのは正しいと思いますか?
  2. true の場合、webdeployment が cshtml を出荷しないようにする必要がありますか? それらがオンサイトに存在すると、再コンパイルが発生しますか?
  3. もしそうなら、これは展開された mvc アプリケーションの起動時間を短縮するはずですか? ビューをコンパイルする必要がないので?
  4. csproj にも false を追加する必要がありますか? true から false に変更する必要があることを示唆する記事を見ましたが、私の csproj にはありません。

乾杯ティム

4

2 に答える 2

4

正しく構成されていれば、コンパイル前の検証を行うだけでなく、実際にビューをバイナリにビルドする必要があると言っているのは正しいと思いますか?

いいえ。

true の場合、webdeployment が cshtml を出荷しないようにする必要がありますか? それらがオンサイトに存在すると、再コンパイルが発生しますか?

いいえ、cshtml出荷時にファイルが存在している必要があります。

もしそうなら、これは展開された mvc アプリケーションの起動時間を短縮するはずですか? ビューをコンパイルする必要がないので?

いいえ、リリース モードでは、ビューの場所を自動的にキャッシュする Razor によって行われる最適化があり、それらを解析すると、後続の要求では再解析されません。

したがって、この話の教訓は、プロジェクトの継続的インテグレーション ビルド中にビルド サーバーが潜在的なエラーを検出できるように、リリース モードで MvcBuildViews オプションを有効にできるということです。デバッグ モードでは、ビルドが遅くなるため、無効のままにします。

于 2012-07-02T07:21:22.497 に答える
2

RazorGeneratorは、コンパイルされたビューをバイナリとして出荷するという私の最初の質問に対する唯一のオプションのようでした。

于 2013-02-12T09:24:52.743 に答える