2

多くのユーザー コントロール (*.ascx) を備えた webforms ASP.NET アプリケーションがあります。デバッグを開始すると、各コントロールのシンボルをリロードしているように見えますが、それぞれに 1 ~ 2 秒かかります。その結果、コードが変更されるたびに、アプリの起動に約 1 分半かかります。(その後、コードの変更がない限り、非常に迅速にデバッグを停止および開始できます。)

出力ウィンドウには、次のような行が数十あります。

'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\Users\Herb Caudill\AppData\Local\Temp\Temporary ASP.NET Files\root\1f256061\12a5d99\App_Web_hcj5xynv.dll', Symbols loaded.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\Users\Herb Caudill\AppData\Local\Temp\Temporary ASP.NET Files\root\1f256061\12a5d99\App_Web_facettextboxfilter.ascx.b3b3f5d8.obkscoie.dll', Symbols loaded.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\Users\Herb Caudill\AppData\Local\Temp\Temporary ASP.NET Files\root\1f256061\12a5d99\App_Web_editgridcolumnchooser.ascx.b3b3f5d8.o1vmswte.dll', Symbols loaded.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\Users\Herb Caudill\AppData\Local\Temp\Temporary ASP.NET Files\root\1f256061\12a5d99\App_Web_editgridimporttools.ascx.b3b3f5d8.mslzoqjj.dll', Symbols loaded.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\Users\Herb Caudill\AppData\Local\Temp\Temporary ASP.NET Files\root\1f256061\12a5d99\App_Web_facetsearchpager.ascx.b3b3f5d8.b-mkmweb.dll', Symbols loaded.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\Users\Herb Caudill\AppData\Local\Temp\Temporary ASP.NET Files\root\1f256061\12a5d99\App_Web_photogallery.ascx.b3b3f5d8.0mzg-l3y.dll', Symbols loaded.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\Users\Herb Caudill\AppData\Local\Temp\Temporary ASP.NET Files\root\1f256061\12a5d99\App_Web_facetcheckboxfilter.ascx.b3b3f5d8.krw3yihh.dll', Symbols loaded.

これらのコントロールのほとんどは、私がデバッグしているページとは何の関係もありません。不要なシンボルをすべてロードしないことで、デバッグ プロセスを高速化する方法はありますか?

注:「すべてのブレークポイントを削除する」および/またはネットワーク経由での Microsoft シンボルの読み込みに関する問題で回答される同様の質問が多数あります。ここではどちらも問題ではありません。

4

2 に答える 2

4

最初は、多くのdllをロードする問題は、おそらくコンパイラバッチをオフにしていないためだと思います。そのため、変更のたびに、ビジュアルスタジオは複数のページをコンパイルします。

したがって、この回答https://stackoverflow.com/a/9199027/159270を試すことをお勧めします。

optimizeCompilationsを true に設定し、batchfalseに設定します。

<compilation batch="false" optimizeCompilations="true" ... >

asp.net バージョン 3.5 の場合、この最適化スイッチを使用するには、このパッチを使用する必要があります。 http://support.microsoft.com/kb/961884

オンラインサーバーで同じことをしないでください。

于 2012-08-04T20:46:13.667 に答える
0

msdnフォーラムでこれに対する受け入れられた回答があります-元のリンクはこちら

http://social.msdn.microsoft.com/Forums/pl-PL/vsdebug/thread/a76c4fbe-93de-4875-b111-43a472876271

以下の答えは、便宜上そこから切り取って貼り付けたものです。

Visual Studio では、「Modules Window」(ブレークモードでのデバッグ中に「Debug->Windows->Modules」からアクセス可能) を介してシンボルの読み込み動作に影響を与え、「Automatic Symbol Load Settings」を「Always Load Manually」に設定することができます。

方法: モジュール ウィンドウを使用する http://msdn.microsoft.com/en-us/library/4c8f14c9.aspx

また、自動的にロードするシンボルを指定できる [シンボル設定] ダイアログを使用することもできます

シンボル、デバッグ、オプション ダイアログ ボックス http://msdn.microsoft.com/en-us/library/b13s79c0.aspx

于 2012-08-04T18:48:28.670 に答える