2

App_Code フォルダーで変更が行われたか検出された場合、Visual Studio はどのように App_Code フォルダーを処理しますか? IIS や ASP.NET ではありません。

Web サイト プロジェクトの大きな App_Code フォルダー内にコード ファイルを保存すると、Visual Studio が長時間フリーズする理由をよりよく理解したいと考えています。別の方法として、同じ大きさのクラス ライブラリ内のファイルを処理するときに、Visual Studio で同じようなフリーズが発生しないのはなぜでしょうか?

理想的には、Microsoft から引用された、Visual Studio で App_Code フォルダーを処理する際の問題と、たとえばクラス ライブラリの処理とは異なる何が起こるかについての公式ドキュメントを参照したいと思います。

4

3 に答える 3

7

App_Code フォルダーは、いずれかのプログラミング言語で記述されたファイルを含むものとして明示的にマークされていません。代わりに、ASP.NET は、含まれているファイルに基づいて、App_Code フォルダーに対して呼び出すコンパイラを推測します。App_Code フォルダーに .vb ファイルが含まれている場合、ASP.NET は Visual Basic コンパイラを使用します。.cs ファイルが含まれている場合、ASP.NET は C# コンパイラを使用します。

App_Code フォルダーに、.wsdl ファイルなど、プログラミング言語があいまいなファイルのみが含まれている場合、ASP.NET は、アプリケーションの Web.config ファイルまたはコンピューター レベルのコンパイル要素で確立されているように、Web アプリケーションの既定のコンパイラを使用します。 Web.config ファイル。コンパイラはビルド プロバイダーと呼ばれ、ビルド プロバイダーはextension 要素のファイル拡張子ごとに指定されます。

こちらのドキュメントを参照してください。

于 2013-09-01T16:30:20.103 に答える
0

App_Code フォルダーに関するこれらのパフォーマンス ノートは少し古くなっていますが、プロジェクト タイプにはまだ当てはまる可能性があります。

2) /app_code ディレクトリ内のファイル数を少なくしてください。このディレクトリ内に多くのクラス ファイルがある場合は、別のクラス ライブラリ プロジェクトを VS ソリューションに追加し、代わりにこれらのクラスをその中に移動することをお勧めします。これは、クラス ライブラリ プロジェクトが /app_code 内のクラスをコンパイルするよりも速くコンパイルされるためです。ディレクトリ。これは通常、/app_code に少数のファイルしかない場合は問題になりませんが、多数のディレクトリまたは多数のファイルがある場合は、これらのファイルを別のクラス ライブラリ プロジェクトに移動して速度を向上させることができます。次に、代わりに Web サイトからそのプロジェクトを参照します。もう 1 つ注意すべき点は、VS HTML デザイナー内でソースからデザイン ビューに切り替えるたびに、デザイナーは、デザイナー サーフェスが読み込まれる前に /app_code ディレクトリをコンパイルさせます。これは、デザイナーの /app_code 内で定義されたコントロールをホストできるようにするためです。/app_code ディレクトリがない場合、またはその中にいくつかのファイルしか定義されていない場合、ページ デザイナーはより速くロードできます (最初に大きなコンパイルを実行する必要がないため)。

-- http://weblogs.asp.net/scottgu/archive/2006/09/22/Tip_2F00_Trick_3A00_-Optimizing-ASP.NET-2.0-Web-Project-Build-Performance-with-VS-2005.aspx

于 2013-09-05T23:05:56.043 に答える