如果 Windows 服务由 Visual Studio 安装程序安装,则无法调试它
Posted
技术标签:
【中文标题】如果 Windows 服务由 Visual Studio 安装程序安装,则无法调试它【英文标题】:Can't debug Windows Service if it's installed by Visual Studio Installer 【发布时间】:2020-04-27 01:10:13 【问题描述】:我一直在调试我一直在使用的 Windows 服务,没有任何明显的问题。我曾经通过installutil
命令安装它,并且能够调试它(遵循this MSDN 教程)。
将服务部署到生产服务器意味着要打包所有依赖项非常痛苦,所以我被鼓励通过某种安装程序来部署它。
哪一个? “又快又脏”的解决方案:Visual Studio installer
一切都运行良好,直到我需要调试已安装的服务器,就像我一直在做的那样。我附加了 Windows 服务进程,但调试器没有在我的断点处停止。
我到底错过了什么?
【问题讨论】:
【参考方案1】:在我写这个问题时,我问自己我是如何配置构建属性的。令我惊讶的是,它被设置为release
。
我把它改成了debug
,卸载了服务,又重新安装了,终于调试好了我的服务。
请记住,我总是通过右键单击项目名称并单击“安装”来安装服务。似乎这需要将安装程序放置在指定的构建配置上。
问题是该服务应该唯一地安装在生产服务器上。我应该始终部署发布版本,以便完全干净和优化,所以我想我将不得不继续交换这个选项,至少对于我自己的工作空间。
是的,我的installutil
指向调试构建。
【讨论】:
以上是关于如果 Windows 服务由 Visual Studio 安装程序安装,则无法调试它的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 6.0 在 Windows 10 下崩溃的一种解决方法
stu--CLEVR: A Diagnostic Dataset for Compositional Language and Elementary Visual Reasoning