如何调试自定义Windows服务的安装?

Gui*_*ume 2 c# debugging windows-services installutil

我在C#(4.0)中创建了一个Windows服务,并尝试在命令行中使用installutil工具安装它.但是我得到了一个例外.我设法找出我的代码的哪个部分导致异常 - 使用一些糟糕的日志记录,但不管怎样 - 但现在我想了解原因.所以我想要做的是调试我的Windows服务的安装.

我知道如何调试服务本身,但在这里,我想在服务中调试我的Installer.Install(IDictionary stateSaver)方法的内容.

我试图将调试器附加到cmd.exe进程,但它显然不起作用.我还想将调试器附加到installutil进程,但我不知道如何做到这一点.

我看了一下这篇文章:你如何调试正在安装的Windows服务?和其他几个人但在这种情况下,出于某种原因,这家伙似乎已经在services.msc中提供了他的服务,这不是我的情况.

我怎样才能做到这一点?

Kla*_*sen 11

您可以Debugger.Break();在安装程序代码中添加一个语句,它应该为您启动调试器.

  • @KlausByskovPedersen我通过使用Debugger.Launch()来解决这个问题.错误的原因是如果没有可用的调试器,Debugger.Break将使您的应用程序崩溃,而Debugger.Launch将在不可用时启动. (3认同)