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

我尝试了以下方法:

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

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


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


当前回答

如果您发现上述解决方案都不起作用,请尝试此操作。

右键单击项目->财产->构建->高级。将调试信息从None更改为Pbd only或full

其他回答

我的经验是尝试远程调试我部署到AWS服务器上的web应用程序。问题是,当我部署到服务器时,它会编译并创建exe和pdb文件。但是本地编译的exe和pdb文件与服务器上部署的文件不匹配,因此当我连接到远程进程,然后尝试在Debug/Windows/Modules中为我的项目的DLL加载符号时,它会找到本地pdb文件,我会收到一个错误“pdb不匹配图像”

因此,在尝试了以上所有建议后,这是我为使断点工作所做的工作:

连接并登录到远程web服务器。转到保存exe和pdb文件的文件夹。在我的例子中,它是C:\inetpub\AspNetCoreWebApps\app。复制该文件夹中的*.pdb文件。将pdb文件粘贴到您的本地计算机上,在那里查找项目的pdb文件。您将在Debug/Windows/Modules中找到路径,右键单击DLL并选择Symbol Load Information。。。现在您可以使用调试/附加到进程。。。要附加到远程进程,它应该加载符号,因为pdb现在与远程exe文件匹配。

完成远程调试后,可以重建项目以恢复当前的pdb文件,以便在本地进行调试。

可能可以向符号路径列表中添加一个路径,以便从远程服务器加载pdb,但如果有,我还没有找到它。这可能比简单地将pdb文件从远程服务器复制到本地VS环境更麻烦。

在共享点项目中调试silverlight应用程序时遇到问题。在项目财产的sharepoint选项卡下,必须显式启用silverlight应用程序的调试。否则会出现此错误。

对于发生此错误的某些情况,另一种解决方案是:检查您的Build Action。

我在一个asp.net MVC3项目中遇到了这个问题;我的一个控制器由于某种未知原因将其Build Action设置为EntityDeploy,尽管它应该是Compile。

我个人的情况是,调试在最初创建的Visual Studio 2013中运行,但在2015年无法运行。我能够通过将项目文件(.proj)中的版本更改为版本12而不是版本10来解决这个问题。

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

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

<compilation debug="true">