什么是“加载符号”,为什么第一次需要这么长时间?

11

当我第一次在Visual Studio 2012中执行我的C# Web应用程序项目时,第一次启动总是需要相当长的时间,通常需要20到30秒。大部分时间似乎都花费在“加载引用X.Y.Z.dll的符号”上。每个约30个引用需要约1秒钟来加载这些符号。一旦它们被加载了第一次,后续的执行通常只需要几秒钟。

那么,“加载符号”究竟是什么?为什么会花费这么长时间?有没有一种方法可以加快它?


你是否启用了.NET源代码调试或其他相关功能来进行.NET源代码调试? - qwr
我在第一次提示时启用了web.config文件进行调试,但没有启用任何Dot.Net原始源代码。所以我不认为我启用了跳过net源代码。 - Nzall
3个回答

21

我相信您可以通过

禁用它。
 Tools -> Options -> Debugging -> Symbols
 check Automatically load symbols 

 Tools -> Options -> Debugging -> General
 enabling "enable Just My code "

为了提高速度,始终使用发布模式。这只影响调试过程(而不是调试代码)。 - qwr
好的,这回答了第三个问题。那前两个呢?它是什么,为什么需要这么长时间?实际上,我对这两个答案更感兴趣,而不是如何加速它。 - Nzall
“影响调试过程”是什么意思?这是否意味着调试会变得更慢,或者以不同的方式进行? - Nzall
@NateKerkhofs 你也能够调试网络资源。嗯,它正在加载符号。由于网络速度的原因,加载可能需要很长时间。 - qwr
1
我不仅仅对如何修复它感兴趣,我还想更好地理解其根本原因,以便提高我在C#和编程方面的知识水平。 - Nzall
显示剩余3条评论

1

检查缓存文件夹中的符号是否正确

工具->选项->调试->符号

在我的情况下,我有一个来自我的旧电脑的文件夹路径,但是该文件夹无法在此路径上创建,因此每次都会下载所有符号。没有错误。


0

这通常发生在你的项目中使用NuGet时。在我的情况下,选择NuGet.org符号服务器解决了这个问题。 在此输入图片描述 但是重要的是选择一个符号缓存。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接