2

我有一个带有大量用户控件 (*.ascx) 的 webforms ASP.NET 应用程序。当我开始调试时,它似乎为每个控件重新加载符号,每个符号都需要一两秒钟;因此,每当代码更改时,应用程序都需要大约一分半钟的时间才能启动。(只要没有代码更改,我随后可以非常快速地停止和开始调试。)

在输出窗口中,我有几十行这样的:

'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 的问题可能是因为您没有关闭编译器批处理,所以每次更改时,Visual Studio 都会编译多个页面。

所以我建议尝试这个答案https://stackoverflow.com/a/9199027/159270并且它有效。

所以设置optimizeCompilations为真,batch

<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 中,您可以通过“模块窗口”影响符号加载行为(在中断模式下通过“调试->Windows->模块进行调试时可访问”,将“自动符号加载设置”设置为“始终手动加载”。

如何:使用模块窗口 http://msdn.microsoft.com/en-us/library/4c8f14c9.aspx

您也可以使用“符号设置”对话框,您可以在其中指定要自动加载的符号如何:指定符号位置和加载行为 http://msdn.microsoft.com/en-us/library/x54fht41.aspx

符号、调试、选项对话框 http://msdn.microsoft.com/en-us/library/b13s79c0.aspx

于 2012-08-04T18:48:28.670 回答