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

我尝试了以下方法:

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

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


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


当前回答

如果您使用的是C++项目或来自C#或任何.NET项目的DLL,并且希望调试到本机代码中。然后转到.NET项目财产->调试->启用本机代码调试(设置为true)。

其他回答

就我而言,这些解决方案都没有奏效。我不得不去

工具->导入和导出设置->重置所有设置。

然后调试开始工作,没有任何问题。

我最终得到了一个文件的两个副本,其中包含相同的类。这两个副本都在Visual Studio中打开,但它们有不同的文件名,其中一个实际上包含在项目中,另一个则没有。

确保正在设置的断点位于解决方案/项目实际正在编译的文件中。没有未编译文件的符号。

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

检查csproj文件中是否有<DebugType>完整</DebugType>如果它存在,请尝试删除它并重试调试

UWP:

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

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