【发布时间】:2017-04-26 18:46:44
【问题描述】:
Visual Studio 新手和 C# 新手。在 Visual Studio 2017 中构建名为 Transactional Messaging 的 C# windows 服务,该服务依赖于名为 Outbound Messaging 的项目。当我开始调试并尝试在出站消息文件上添加断点时,我得到了
"当前不会命中断点。没有加载任何符号 为这个文件”
据我所知,VS 仅无法加载以下 pdb 文件:log4net.dll、Castle.Windsor.dll 和 Castle.Core.dll。在事务性消息服务中向文件添加断点没有这个问题。我无法识别行为模式或永久修复,因此此时错误似乎是随机的。一分钟我想我找到了一个修复程序,当我在当天晚些时候尝试对同一错误使用该修复程序时,我没有运气。我怀疑最近的一次停电意外关闭了我的计算机,因为看起来 pdb 文件可以被缓存,但被告知这将是一个很长的机会。
调试服务的步骤:
- 通过 Windows 服务小程序停止事务性消息传递服务
- 使用 Debug 文件夹中的
installutil /u TransactionalMessaging.exe通过 VS 命令行卸载 Transactional Messaging Service - Visual Studio 中的清洁事务性消息传递解决方案
- 在 Visual Studio 中构建事务性消息传递解决方案(有一次修复是在解决方案资源管理器中右键单击解决方案的各个方面并单独构建)
- 使用 Debug 文件夹中的
installutil TransactionalMessaging.exe通过 VS 命令行安装 Transactional Messaging Service - 通过 Windows 服务小程序启动事务性消息服务
- 在 VS 中,调试 > 附加到进程 > 事务性消息传递
- 尝试向出站消息服务中的文件添加断点,这会导致我出现上述错误。
我尝试解决此错误的步骤:
- 调试 > Windows > 手动加载每个模块符号的模块(找不到 log4net.dll、Castle.Windsor.dll 和 Castle.Core.dll 的 pdb 文件) picture of modules
- 完全删除上述步骤 2 和 3 之间的 bin 和 obj 文件夹
- 项目 > 项目属性 > 构建 > 高级 > 调试信息:完整(对于事务性消息传递和出站消息传递)
我不确定这是对 VS、C# 还是代码库缺乏了解。感谢任何见解,我已经过了谷歌搜索阶段并发布一个新问题作为最后的手段。
【问题讨论】:
-
您能在本地机器中找到 dll 文件或 pdb 文件吗?请在 TOOLS->Options->Debugging->Symbols 下启用 Symbols Server。另外,这些程序集是否是从 Nuget 包管理安装的?如果是,请确认您是否安装了正确/匹配的版本。
标签: c# visual-studio windows-services visual-studio-debugging pdb-files