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

我尝试了以下方法:

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

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


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


当前回答

如果我们从VSTS获取最新版本,所有文件都将处于只读模式。运行项目时,所有类库类都是只读的,制动点变为空,并表示“当前不会命中断点。没有为此文档加载符号”。

解决方案1

转到项目位置并右键单击文件夹-->财产-->常规选项卡-->取消选中只读(仅适用于文件夹中的文件)-->应用-->确定

解决方案2

开始调试,转到调试--->Windows--->模块。选择一个程序集,然后右键单击--->(选择)符号设置。在此目录的缓存符号中设置您的Bin路径,然后在PDB位置的符号中选择Microsoft服务器。单击“加载所有符号”。这需要时间。然后单击“确定”。

现在,所有程序集的符号状态已从“找不到或打开PDB”更改为“符号已加载”。

其他回答

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

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

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

我的解决方案是更改Visual Studio版本(我试图在VS2013上打开它,结果在VS2015上打开了它)。

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

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

在我的案例中,这是在Windows更新之后开始的,结果是Windows更新关闭了Internet信息服务,这使得我的API似乎无法达到我设置的断点,但实际发生的是IIS无法启动,因此我的应用程序代码实际上没有运行。

再次检查Windows功能菜单中是否启用了Internet信息服务。

IIS说明:

控制面板程序打开或关闭窗口功能勾选互联网信息服务重新启动visual studio

如果使用IIS Express:

从旧控制面板中打开“添加/删除程序”,然后在IIS Express上运行修复程序,或者您可以转到“控制面板”->“程序”->“应用程序和功能”->“打开或关闭Windows功能”->Internet Information Services并检查父Internet Information Services文件夹。

我在这里得到了这样的答案:指定的参数超出了有效值的范围。参数名称:站点