使用 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.
中找到更多信息
我正在使用 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.