在之前編寫的一個服務里,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。配置成在該可執行程序中運行的這個服務不能執行該服務”。