c# - Inno Setup for Windows服務?




windows-services inno-setup (3)

我有一個.Net Windows服務。 我想創建一個安裝程序來安裝該Windows服務。

基本上,它必須做到以下幾點:

  1. 安裝包installutil.exe (是否需要?)
  2. 運行installutil.exe MyService.exe
  3. 啟動我的服務

另外,我想提供一個運行以下命令的卸載程序:

installutil.exe /u MyService.exe

如何使用Inno Setup來完成這些操作?


以下是我做到的:

Exec(ExpandConstant('{dotnet40}\InstallUtil.exe'), ServiceLocation, '', SW_HIDE, ewWaitUntilTerminated, ResultCode);

顯然,Inno安裝程序具有以下常量用於引用系統上的.NET文件夾:

  • {} dotnet11
  • {} dotnet20
  • {} dotnet2032
  • {} dotnet2064
  • {} dotnet40
  • {} dotnet4032
  • {} dotnet4064

更多信息here



您可以使用

Exec(
    ExpandConstant('{sys}\sc.exe'),
    ExpandConstant('create "MyService" binPath= {app}\MyService.exe start= auto DisplayName= "My Service" obj= LocalSystem'), 
    '', 
    SW_HIDE, 
    ewWaitUntilTerminated, 
    ResultCode
    )

創建一項服務。 有關如何啟動,停止,檢查服務狀態,刪除服務等信息,請參閱“ sc.exe ”。





inno-setup