1

web.config に batch="false" を追加する日まで、Web アプリケーション プロジェクト (Web サイトではない) があります。Web 開発サーバーは、要求されたページではなく、すべての Web アプリケーションをコンパイルしていました。

<compilation debug="true" batch="false">
      <assemblies>
        ...
      </assemblies>
</compilation>

これにより、私たちはより速くなります。しかし、何が変わったのかわかりません(古いバージョンを比較して、リポジトリから foo.cproj と web.config の両方を調べましたが、この速度低下の原因となるものは何も見つかりませんでした)。

%temp%/Temporary ASP.NET Files を見ました。Web アプリをコンパイルした後 (再コンパイルではなく、shift + f6)、ページを要求すると、Web サーバーが既にコンパイルされたすべてのファイルを %temp%/Temporary ASP.NET ファイルから削除して再作成することがわかります。これが正常かどうかはわかりませんが、すべての Web アプリケーションを完全に再コンパイルしているように見えましたが、これは非常に遅いものでした。(私はプロセスエクスプローラーを介して、csc.exeを数回呼び出すwevdev.wevserver.exeを調べました)

コンパイルを高速化するにはどうすればよいですか? ありがとう...

4

2 に答える 2

1

これは、Web アプリケーション プロジェクトを使用することの一部だと思います。アプリケーションをビルドするたびに、サイト全体が再コンパイルされます。「Web サイト」とは異なり、Web アプリケーションはすべて単一の dll (および参照) にコンパイルされることがわかります。

もう 1 つ気を付けなければならないことは、ルート Web アプリ フォルダーの下にあるファイル/フォルダーを削除すると、強制的に再コンパイルが行われることです。

プラス面では、最初のコンパイルを乗り越えると、未訪問のページでコンパイル時間をさらに待つ必要がなくなります。

于 2008-12-19T21:19:25.653 に答える
1

NET CLR の 32 ビット バージョンで使用できる、「エディット コンティニュを有効にする」という名前の ASP.NET 開発サーバーのオプションがあります。Visual Studio でオフにします。

また、「x86」のビルドで「任意の CPU」のビルドを変更してみてください。これにより、コンパイルが高速化されるはずです。

于 2008-12-19T14:19:59.463 に答える