一个C#桌面应用程序(在Visual Studio Express版上)工作了,但5秒钟后就不工作了。

我尝试了以下方法:

确保在所有程序集上设置了调试配置、调试标志和完整的调试信息。从我的整个计算机中删除所有bin和obj文件夹以及与项目相关的所有DLL文件。从头开始重新创建导致问题的项目。重新启动。

我在解决方案中有两个Windows窗体项目。其中一个加载调试信息,另一个不加载。它们都引用了我试图在项目文件中以完全相同的方式获取调试信息的程序集。有什么想法吗?


我想在这里补充一点,当我回来回顾这个问题时,主要是为了我自己,即在加载程序集之前不会加载符号,并且在需要时才会加载程序集。如果断点位于仅在主程序集中的一个函数中使用的库中,则在调用该函数之前,不会加载符号(并且它将显示断点未命中)。


当前回答

对于我的Xamarin应用程序,在我彻底清除了源代码管理文件夹、执行了“获取最新版本”并重建了解决方案后,它终于开始调试。

其他回答

有时IIS会因某种原因保留文件。我不得不删除网站并重新创建,问题就解决了

在我的案例中,我正在使用Visual Studio的Experimental Instance调试WPF扩展。在开始调试并暂停调试后,我打开了“调试”>“窗口”>“模块”窗口。在那里,我可以看到Visual Studio试图加载符号C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\15.0_76a9e536Exp\Extensions\<companyName>的目录。停止调试后,我使用Windows资源管理器删除了目标文件夹并重新启动了调试器。Visual Studio随后能够命中断点。

这花了我一段时间尝试了上面的其他选项,由于某种奇怪的原因,调试停止了。

工具->选项->调试->常规->(取消勾选)“要求源文件与原始版本完全匹配”选项

最终对我有效的是将配置设置更改为“发布”而不是“调试”,因为编译器似乎跳过了代码,断点最终被命中。

对于那些使用ASP.Net(框架)WSP应用程序的人来说,还有一个答案。

我能让VS正确调试的唯一方法是确保编译行web.config中的debug=“true”:

<compilation debug="true">