【问题标题】:Inno setup and NSSM service working integrationInno 设置和 NSSM 服务工作集成
【发布时间】:2016-05-03 11:46:22
【问题描述】:

我有一个应用程序可以使用 Inno 安装程序打包到安装程序文件中。应用程序必须在 Windows 上作为服务运行。我正在使用 NSSM 服务管理器在单台计算机上完成它。但是在 Inno 安装包中,我找不到任何技巧来使它成为可能。

NSSM 有什么用吗,或者是否可以使用 Inno 脚本使服务工作?

【问题讨论】:

  • 我过去做过。你有什么问题?发布您的脚本以及您看到的行为。
  • @mirtheil 实际上我什至无法将任何代码添加到有关 NSSM 的脚本中。我找不到任何关于它的例子。
  • 我也不希望有任何 NSSM 和 InnoSetup 的具体示例。您需要做的是让 NSSM 部分自行工作,然后将其集成到 InnoSetup 中。我可以告诉你,我所做的只是在我的脚本中包含 NSSM 可执行文件并添加一个 [RUN] 条目。
  • @mirtheil 是否可以编写我自己的脚本 (.bat) 来通过 NSSM 创建服务。因为在创建服务时,正在打开 nssm 接口,并且通过 .bat 文件执行此操作是一个障碍?是这样吗,你怎么看?

标签: windows service installation inno-setup nssm


【解决方案1】:
  1. 下载NSSM
  2. 提取Zip 文件,然后将nssm.exe 复制到您的源路径(Inno Setup 脚本从中获取源)。
  3. 创建一个 bat 文件以允许 nssm 将您的应用设置为服务,如下所示:

    nssm install "ServiceName" "YourAPP.EXE"
    nssm set "ServiceName" AppDirectory %CD%
    nssm start "ServiceName"
    del "%~f0"
    

    注意: del "%~f0" 设置完成后删除 bat 文件,如果您不想这样做,请从 bat 文件中删除该行

  4. 在源路径中添加上一个 bat 文件。

  5. 向 Inno Setup 脚本添加新源,如下所示:

    [Files]
    Source: "..\YOUR-SOURCE-PATH\file.bat"; DestDir: "{app}";
    Source: "..\YOUR-SOURCE-PATH\nssm.exe"; DestDir: "{app}";
    
  6. [Run] 部分下添加 bat 文件以设置服务并启动您的应用程序,如下所示:

    Filename: "{app}\file.bat"; \
        Flags: nowait postinstall hidewizard runhidden runascurrentuser; \
        Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"
    

希望有用,谢谢@MartinPrikryl

【讨论】:

  • 尝试突出显示关键字并明确格式,这将有助于为其他人找到答案
  • 这是我的第一个答案,我不知道为什么会这样,我设置了代码标志并将其写入有组织的步骤
  • 没关系,只是这样而已。将通过您即将到来的贡献来纠正它。一切顺利。
猜你喜欢
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 2016-12-18
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
相关资源
最近更新 更多