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

我尝试了以下方法:

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

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


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


当前回答

仅限Web应用程序(IIS Express):

右键单击IIS Express Tray并关闭IIS。清洁解决方案

其他回答

有时,即使它给你这个错误,断点仍然会被击中,所以忽略这个错误。

这在MVC web应用程序(即.cshtml)的视图中经常发生。

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

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

UWP:

如果您正在调试通用Windows项目[UWP],该过程类似于使用混合C#和本机代码的解决方案,除非您需要将Application进程或Background Task进程调试器设置为Managed Only以调试C#代码。

在解决方案资源管理器中右键单击启动项目选择财产选择“调试”选项卡将进程调试器类型设置为“仅托管”

我的情况是Visual Studio 2019,我们有C#和C++代码。不知道我搞砸了什么,但解决方案是在C#代码运行时从auto改为Native。

调试->附加到进程。。。上面写着附加到:选择本机代码(在我的情况下)。找到有问题的过程,瞧。

我认为如果这个错误是源代码,调试符号在构建发布后很难出现在解决方案中。

我尝试了所有其他答案——一般来说,重新生成.pdb符号或检查它们的位置、清理和重建项目、确保活动配置不是Release等。

最终对我有用的是在解决方案浏览器>调试>启动新实例中右键单击项目。