在之前编写的一个服务里,ServiceBase[]里只有一个,
static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> static void Main() { ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new Service1(), }; ServiceBase.Run(ServicesToRun); } }
运行是没问题的,后来加上一个服务,在ServiceBase[]里添加,
static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> static void Main() { ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new Service1(), new AutoVoucher(), }; ServiceBase.Run(ServicesToRun); } }
调试发现只运行之前的Service1,没有运行后来新加的AutoVoucher,解决办法是:回到AutoVoucher的视图,右键->添加安装程序,
然后就可以看到,
其中serviceInstaller1是Service1的安装程序,serviceInstaller2是后来新增的:
修改相关属性值,搞定!
PS:千万不要更改ServiceName的值,否则会出错“错误1083。配置成在该可执行程序中运行的这个服务不能执行该服务”。