我有一個帶有windows服務的exe文件。要安裝它,我用命令:安裝帶自定義名稱的windows服務
installutil myService.exe/ShowCallStack
然後,我可以看到「服務1」,在服務窗口中列出。
我的問題是如果可以安裝2個相同服務(使用相同的exe)的實例,但具有不同的名稱。我想在不改變源代碼的情況下做到這一點。
感謝
我有一個帶有windows服務的exe文件。要安裝它,我用命令:安裝帶自定義名稱的windows服務
installutil myService.exe/ShowCallStack
然後,我可以看到「服務1」,在服務窗口中列出。
我的問題是如果可以安裝2個相同服務(使用相同的exe)的實例,但具有不同的名稱。我想在不改變源代碼的情況下做到這一點。
感謝
我在過去使用過類似下面的腳本。編輯服務名稱,將其保存爲VBS並運行它。
Const ExistingServiceName = "Service1"
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
set objExistingService = objWMIService.Get("Win32_Service.Name='" & ExistingServiceName & "'")
Set objService = objWMIService.Get("Win32_BaseService")
Const NewServiceName = "Service2"
errReturn = objService.Create (NewServiceName, NewServiceName, objExistingService.PathName, OWN_PROCESS ,NOTIFY_USER ,"Manual" , NOT_INTERACTIVE ,".\LocalSystem" ,"")
請問您的服務有ProjectInstaller
類?如果您將ProjectInstaller
添加到您的服務中,則可以編輯ProjectInstaller的ServiceInstaller的DisplayName
屬性。這會將名稱從「Service1」更改爲您希望的名稱。 ProjectInstallers上的演練可以在MSDN here上找到。
可以服務在安裝過程中使用InstallUtil.exe.config,所以我的骯髒的黑客一直在尋找這樣的:
在ProjectInstaller.designer.cs
this.Service1.Description = ConfigurationManager.AppSettings["ServiceDescription"] != null ? ConfigurationManager.AppSettings["ServiceDescription"] : "bla, bla, bla";
this.Service1.DisplayName = ConfigurationManager.AppSettings["DisplayName"] != null ? ConfigurationManager.AppSettings["DisplayName"] : "Service One";
this.Service1.ServiceName = ConfigurationManager.AppSettings["ServiceName"] != null ? ConfigurationManager.AppSettings["ServiceName"] : "Service1";
在InstallUtil.exe
的.config:
<configuration><appSettings><add key="ServiceName" value="Service1" /><add key="DisplayName" value="Service One" /><add key="ServiceDescription" value="bla, bla, bla" /></appSettings></configuration>
不能得到如何張貼在這裏
XML歡呼聲