站点图标 江湖人士

VS2022免附加进程调试Windows服务

时至2022年了,还有群友在写win服务,突然群里面问起如何调试win服务,VS2022如何免附加到进程调试Windows服务这篇文章就来做下简单的介绍,这个方法简单粗暴,开发阶段最适用。本文写于2018年,在2022年末修改了一下。

最近开发app通讯客户端程序,这个app通讯客户端程序主要用于解决内外网通讯的问题,使用Windows服务来实现,开发过程中遇到问题自然是调试程序,可以Windows服务如果直接F5来调试的话,会出现如下的一个弹出窗口,意思呢反正就是你要先安装了才能调试,来我们看看是啥提示框:

直接调试Windows服务提示

看来直接调试Windows服务程序是不行的,那在开发Windows服务时,是怎样方便的调试Windows服务程序呢?

免附加进程调试Windows服务

江湖人士来告诉你一个简单粗暴的调试方法,我们也懒得去安装服务,通过附加进程的方式来调试;通过这种简单粗暴的调试方法,你会发现,开发Windows服务跟普通桌面程序无二啦。

第一步:修改Program类里面的Main方法,直接实例化服务程序。下面两张图分别是Main方法修改前和修改后的区别。

原始Main方法

上图就是修改前的Program类的Main方法,我们要对它动点小手术,修改后的代码如下:

修改后的Main方法

修改后的代码我们直接调用服务程序的OnStart方法,注意此方法原始签名是这样的,我们需要修改一下,修改后就不会像上图那样有波浪线的提示了,是因为这个方法签名和修饰符为:protected override void OnStart(string[] args) 这样的,我们需要改为下面这个样子:

修改后的启动方法

经过这样改造后,我们就可以很愉悦的按F5调试Windows服务啦,见下图:

调试Windows服务

打完收工。

退出移动版