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

我尝试了以下方法:

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

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


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


当前回答

清洁解决方案并重建检查配置是否设置为“调试”确保PDB文件位于Debug文件夹中从“调试”菜单中单击“启用所有断点”

其他回答

我对Visual Studio 2019社区和Asp.net Web表单项目也有同样的问题。我花了1.5天的时间,这30个答案中的任何一个都解决了我的问题。最后,我运行visual studio安装程序exe并选择修复选项。所以我的配置被重置了,问题完全消失了。

我最终将我的问题追溯到使用多个PostSharp版本的明显不兼容问题。我试图调试的应用程序具有PostSharp的早期版本,但引用的项目使用的是较新版本,出于某种原因,这导致VS拒绝为该应用程序生成PDB文件(所有其他DLL都加载了调试符号)。

解决方案是将每个项目中的PostSharp更新到最新版本并重新编译。

在我的案例中,问题是我添加了一个新的项目/组件,但我忘记了签名。当解决方案中的其他组件被签名时,您的新组件也需要被签名。所以我的解决方案是将snk文件(从另一个项目)复制到新项目文件夹中,然后从项目财产/签名中选择它。

另一个问题可能是,如果团队使用不同版本的VS,或者如果有人使用Rider和某些VS,他们可能会在项目GUID上使用不同的外壳。

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

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

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