我有一个应用程序可以使用Inno安装程序打包到安装文件中。应用程序必须在Windows上作为服务工作。我正在使用NSSM Service Manager在单台计算机上完成此操作。但是在Inno安装程序包中,我找不到任何技巧来实现它。

NSSM可以做些什么吗?还是可以使服务与Inno脚本一起工作?

最佳答案

  • 下载NSSM
  • 提取Zip文件,然后将nssm.exe复制到您的源路径(Inno Setup脚本从中获取源代码)。
  • 创建一个bat文件以允许nssm将您的应用设置为服务,如下所示:
    nssm install "ServiceName" "YourAPP.EXE"
    nssm set "ServiceName" AppDirectory %CD%
    nssm start "ServiceName"
    del "%~f0"
    

    注意: del "%~f0"用于在安装完成后删除bat文件,如果您不想这样做,请从bat文件
  • 中删除该行
  • 在源路径中添加前一个bat文件。
  • 将新的源添加到Inno Setup脚本中,如下所示:
    [Files]
    Source: "..\YOUR-SOURCE-PATH\file.bat"; DestDir: "{app}";
    Source: "..\YOUR-SOURCE-PATH\nssm.exe"; DestDir: "{app}";
    
  • [Run]部分下添加bat文件以设置服务并启动您的应用程序,如下所示:
    Filename: "{app}\file.bat"; \
        Flags: nowait postinstall hidewizard runhidden runascurrentuser; \
        Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"
    

  • 我希望它会有用,不得不感谢@MartinPrikryl

    10-07 19:10