Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8221333

Replace Inno Setup with custom MSI wrapper for .exe bundler

    XMLWordPrintable

    Details

    • Subcomponent:
    • CPU:
      generic
    • OS:
      windows

      Description

      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.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              asemenyuk Alexey Semenyuk
              Reporter:
              asemenyuk Alexey Semenyuk
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Imported: