我有一个带有大量用户控件(* .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符号有关的问题有很多类似的问题。这里没有一个问题。
答案 0 :(得分:4)
起初我认为你加载许多dll的问题可能是因为你没有关闭编译器批处理,因此在每次更改时,visual studio会编译多个页面。
所以我建议尝试这个答案https://stackoverflow.com/a/9199027/159270并且它有效。
因此,将optimizeCompilations
设置为true,将batch
设置为false
<compilation batch="false" optimizeCompilations="true" ... >
对于asp.net版本3.5,必须使用此补丁才能使用此优化开关。 http://support.microsoft.com/kb/961884
不要在在线服务器上做同样的事情。
答案 1 :(得分:0)
在msdn论坛上有一个可接受的答案 - 原始链接
http://social.msdn.microsoft.com/Forums/pl-PL/vsdebug/thread/a76c4fbe-93de-4875-b111-43a472876271
为方便起见,下面的答案是从那里剪切和粘贴的。
在Visual Studio中,您可以通过“模块窗口”(可访问,在中断模式下通过“Debug-&gt; Windows-&gt;模块”进行调试时)访问符号加载行为,将“自动符号加载设置”设置为“始终手动加载“。
如何:使用模块窗口 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