Is it feasible/sensible to wrap an Inno Setup installer inside an MSI for easier distribution via AD?

后端 未结 10 913
梦毁少年i
梦毁少年i 2020-12-24 06:26

Our installer is written with Inno Setup and we are actually quite happy with it. Yet some customers keep asking for an MSI installer which they could more easily distribute

相关标签:
10条回答
  • 2020-12-24 07:08

    I would argue that it is possible to do all that you would like with an MSI wrapped Inno Setup, but it is far from trivial, and using WiX might make this particular task more difficult. In short I would not really recommend it.

    But if you really would like to...

    MSI files are simply database files with additional script instructions and often embed the .cab file that contains the stuff you actually want to install.

    If you use Wise, you will generate default scripts that you can then add Windows Installer conditions to and control the events to a finer degree (Install, repair, modify, uninstall) so that they call equivalent actions on your Inno Setup install script which would need to be installed into and kept in a temporary folder.

    0 讨论(0)
  • 2020-12-24 07:08

    Wrapping an Inno Setup in an MSI package is not a trivial task. However, it is possible. There are lots of free tools out there that can be used to do this. You should choose one that also supports uninstall(s) and upgrades.

    I have found only one free tool that supports upgrades and uninstall. Check out http://www.exemsi.com/inno-setup-and-msi

    0 讨论(0)
  • 2020-12-24 07:15

    I have had this problem many times myself. Therefore, I created a standard way to approach this problem and it resulted in a wizard that will guide you through the steps. The tool will support the following:

    1. Wrap the exe in an MSI.
    2. Support Uninstall.
    3. Only show one program in "Add or Remove programs".
    4. Allow you to pass command line arguments such as /SILENT to the embedded setup when you run the MSI package with MSIEXEC.EXE.

    You can get it at http://www.exemsi.com (the basic version is free)

    Use my contact form and let me know what you think :-)

    0 讨论(0)
  • 2020-12-24 07:15

    Doing so would be pretty much equivalent to delivering a ZIP file and calling unzip by the end of installation.

    With such approach AD and Windows Installer would be fooled as if dealing with proper MSI installation, but as it is not the case, they'd backfire on you on the very first occasion.

    Don't go this way.

    And WiX is superior toolset to InnoSetup, anyway, so the time you'll spend on learning and porting will pay off by better support of collaboration.

    0 讨论(0)
  • 2020-12-24 07:20

    In response to your edit: yes, what you describe will prevent doing upgrades (other than delete/reinstall) and remote configuration, since the MSI database won't know anything about the contents of your installer.

    Many installer packages started MSI 'support' in this way, though: InstallShield did, for example. That's the main reason I dumped them, because installers made in that way are useless for MSI purposes. I don't know if recent versions of InstallShield are better, last time I checked was 5 years ago.

    0 讨论(0)
  • 2020-12-24 07:21

    No, there's no way to do that while still keeping the functionality your customers are 'implicitly' asking for. The only 'wrapping' in MSI you can do is to extract it on installation and start your InnoSetup installer from the temporary location where you extracted to. MSI is a fundamentally different way of working: InnoSetup (& NSIS & most other installers) take a code-centric approach: you 'program' the 'steps' to install your data. MSI is a database and takes a 'data-centric' approach: you indicate what files should be installed and the MSI 'runtime' does the rest. This gives you versioning and exact control of what goes where.

    In short, to give your customers what they want (i.e., the ease of deployment that MSI brings with AD), you'll need 'proper' MSI's. Good luck with that, it's a major pain IMHO. But it does give good results once you master MSI & WiX.

    0 讨论(0)
提交回复
热议问题