jpackage supports two types of installers for Windows platform: .msi and .exe.
jpackage uses WiX to produce .msi installers and Inno Setup to produce .exe installers.
Support for two different tools producing installers for one platform (Windows) doesn't look like an optimized approach.
The suggestion is to get rid of Inno Setup.
Primary reason to prefer WiX over Inno Setup is that Inno Setup doesn't produce Windows Installer compatible installation packages while WiX does. See http://www.jrsoftware.org/isfaq.php#msi.
Considerations to have only one 3rd party tool to build installers:
- Simplify creation of custom actions in installers.
- Simplify implementation.
- Reduce dependencies on 3rd party tools.
However with Innor Setup removed exe installers will still be supported.
Suggested solution is to wrap msi installer created with WiX into an exe file.
A template exe file with a placeholder for msi file in its resources will be compiled and embedded in jpackage at JDK build.
At run-time, when jpackage is requested to produce exe installer, it will produce msi installer and insert it at msi placeholder of the template exe.
Functionality of template exe will be to extract msi file from resources into a temporary directory and run msiexec on it.
Template exe should pass all command line arguments to msiexec as if msiexec is launched directly.
jpackage uses WiX to produce .msi installers and Inno Setup to produce .exe installers.
Support for two different tools producing installers for one platform (Windows) doesn't look like an optimized approach.
The suggestion is to get rid of Inno Setup.
Primary reason to prefer WiX over Inno Setup is that Inno Setup doesn't produce Windows Installer compatible installation packages while WiX does. See http://www.jrsoftware.org/isfaq.php#msi.
Considerations to have only one 3rd party tool to build installers:
- Simplify creation of custom actions in installers.
- Simplify implementation.
- Reduce dependencies on 3rd party tools.
However with Innor Setup removed exe installers will still be supported.
Suggested solution is to wrap msi installer created with WiX into an exe file.
A template exe file with a placeholder for msi file in its resources will be compiled and embedded in jpackage at JDK build.
At run-time, when jpackage is requested to produce exe installer, it will produce msi installer and insert it at msi placeholder of the template exe.
Functionality of template exe will be to extract msi file from resources into a temporary directory and run msiexec on it.
Template exe should pass all command line arguments to msiexec as if msiexec is launched directly.
- duplicates
-
JDK-8224222 Inno setup 6 broke jpackage
- Closed
-
JDK-8220806 invalid --app-version causes failure in windows exe installer
- Closed
- relates to
-
JDK-8226835 Command window pops up building exe package
- Resolved
-
JDK-8227311 add uninstall option to custom exe wrapper
- Closed
-
JDK-8226834 EXE installer creates unexpected console window
- Closed