使用 Inno Setup 5 的 JavaFX 自安装程序 - 将修改的 .iss 文件放在哪里?

JavaFX Self Installer With Inno Setup 5 - Where put the modify .iss file?

我正在使用 Ant 和 Inno Setup 为 JavaFX 应用程序构建自部署 EXE。

要更改安装文件夹,我按照本主题的答案

但是在进行更改之后,我现在遇到了一个问题,我不知道新的 .iss 文件应该放在哪里

我用的是eclipse,这是我的项目树:

Quizz
|.settings
|bin
|build
  |build
  |deploy
    |bundles
        /* Exe here when I not change the iss file */
  |dist
  |project
  |build.xml
|src

这是我的 iss 文件的一部分,当我 运行 他找不到图标和 exe 文件时。

    [Files]
    Source: "Quizz\Quizz.exe"; DestDir: "{app}"; Flags: ignoreversion
    Source: "Quizz\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

    [Icons]
    Name: "{group}\Quizz"; Filename: "{app}\Quizz.exe"; IconFilename: "{app}\Quizz.ico"; Check: returnTrue()
    Name: "{commondesktop}\Quizz"; Filename: "{app}\Quizz.exe";  IconFilename: "{app}\Quizz.ico"; Check: returnFalse()

   [Run]
    Filename: "{app}\Quizz.exe"; Parameters: "-Xappcds:generatecache"; Check: returnFalse()
    Filename: "{app}\Quizz.exe"; Description: "{cm:LaunchProgram,Quizz}"; Flags: nowait postinstall skipifsilent; Check: returnTrue()
    Filename: "{app}\Quizz.exe"; Parameters: "-install -svcName ""Quizz"" -svcDesc ""Quizz"" -mainExe ""Quizz.exe""  "; Check: returnFalse()

    [UninstallRun]
    Filename: "{app}\Quizz.exe "; Parameters: "-uninstall -svcName Quizz -stopOnUninstall"; Check: returnFalse()

所以问题是我应该把 iss 文件放在哪里?

如果有人能帮助我,他会非常非常好。

我没有找到答案,但我找到了解决方法:

有两个 .exe 文件,运行 jar 的应用程序 .exe,以及由 Inno-Setup 生成的自部署 .exe

我使用 Ant 脚本生成应用程序 .exe,方法是将 nativeBundles 更改为 "all",如下所示:

    <fx:deploy 
      ...
      ...
      nativeBundles ="all"/>

一次 运行,Ant 脚本会创建一个 .jar.jnlp、jre 和两个 .exe

当您选择 nativeBundles="exe".

时,Inno Setup 需要的应用程序 .exe 实际上会生成然后静默销毁

所以使用 nativeBundle="all" 我能够自定义我的 Inno Setup 脚本,所以它将 exe 和 jre 安装在正确的文件夹中。

答案是:您修改后的 .iss 文件应该放在 SAME_DIR_AS_YOUR_ANT_BUILD_FILE\package\windows\ 中(如果这些文件夹不存在,请创建它们)。可以在 this Oracle article, section 6.3.3.

中找到更多信息