Installer capabilities, WIX vs InstallShield Express

后端 未结 3 587
执笔经年
执笔经年 2020-12-14 18:39

Programmers that actually promote their products to production need an installer. (pre-emptive \"programming related\" justificaton.)

For deploying a new suite of i

3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-14 19:03

    I find that wix is a great choice (in spite of the very very steep learning curve) if you need to manage installers in a complex environment because

    • setup definitions are stored in an XML format
    • it gives you full control to the underlying windows installer technology; the XML schema typically closely follows the windows installer database schema (which is also the main reason why the learning curve is so steep)
    • It is easy to integrate into your automated build
    • Parts of the setup can be generated automatically
    • It allows you to define small reusable modules and manage complex dependencies between them.
    • no cost or licensing issues (before wix we all had to use a single "Installshield PC")

    Why the XML format is an advantage: this allows you to fully leverage code versioning systems like subversion or mercurial. Reviewing changes, examining history or even merging changes across branches is a breeze. Compare that to installshield projects which are opaque binary blobs.

    What I mean by managing complex dependencies: in our case we have a big pool of reusable component libraries with a complex set of dependencies between them, and many applications that were build on top of that. Before wix, this was a nightmare when a new dependency was introduced somewhere: ALL setups had to be updated.

    Now with wix, we have a ComponentGroup for each library, organized into a couple wixlibs. Each component group references other component groups that it depends on with a ComponentGroupRef. Application setup developers only need to reference the component groups of direct dependencies, and wix will do the rest by following the references. As a result, introducing a new dependency only requires making a single local change. Our automated builds and wix do the rest to regenerate all the setups.

提交回复
热议问题