Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are limitations of WiX and WiX Toolset?

Tags:

wix

I have been unsuccessfully trying to find an article or post listing functional limitations of WiX (Windows Installer XML)/WiX Toolset. After using WiX for a couple of weeks, I can think of at least two limitations in the most recent RTM version (v3.0):

  • WiX Toolset cannot make a bootstrapper (setup.exe).
  • WiX Toolset cannot retrieve COM registration info from a COM executable.

Can you think of other limitations? Something you ran into while working on a deployment project? I think this info could be handy for people who learn WiX.

like image 592
Alek Davis Avatar asked Oct 18 '10 17:10

Alek Davis


People also ask

What is WiX toolset used for?

Windows Installer XML Toolset (WiX, pronounced "wicks"), is a free software toolset that builds Windows Installer packages from XML. It consists of a command-line environment that developers may integrate into their build processes to build MSI and MSM packages.

Does WiX support .NET 6?

NET 6 runtime is installed. WiX provides pre-defined properties to check this for . NET framework but nothing for .


2 Answers

It's easiest for me to answer this question in terms of what is WiX missing that InstallShield has ( feature gap ).

  • Bootstrapper/Chainer - WiX has a bootstrapper called Burn which is now included in WiX v3.6.
  • XML Read - WiX only has CA's for writing not reading ( AppSearch ) XML files
  • Text Search / Replace - InstallShield has patterns for reading/writing non INI/XML files
  • MSSQL Only - No support for Oracle and MySQL
  • Automation Interface - No DOM for programatically updating/generating projects. Have to do it all with raw XML.
  • No Native IIS 7 support - Native IIS7 support is present from WiX v3.5
  • Mostly Text Only toolset. No GUI Designers for heavy lifting ( see IsWiX ). XML is concise and has it's place but it's like comparing Notepad to Blend.

I've used heat to extract COM fairly successfully so that's no longer a concern to me.

like image 50
Christopher Painter Avatar answered Oct 10 '22 17:10

Christopher Painter


I would add several more points, but these can hardly be called serious limitations since they all can be worked around:

  • There's no ready-made tool to embed transforms (MST) into the MSI package; this is where msidb.exe comes to the rescue
  • You have to do extra work to create a single package with a number of localizations, like creating N packages, generate N language transforms against a neutral package, embed those transforms into the package, instruct your bootstrapper to call correct language transform
  • WiX 3.0 has rather limited IIS extension - it supports IIS 7 only in IIS 6 compatibility mode; but fortunately this is no longer true for WiX 3.5
  • Heat can't generate "1 component - N files" by default. Yeah, I know, it's not recommended, but sometimes you need it; fortunately, you can transform the heat output the way you like with XSL
  • PermissionEx of UtilExtension doesn't have a switch to set ACLs on folders only. If you need to set ACLs to your installed files only, this is quite minor. But I had to patch WiX with a quick fix to be able to say "apply these permissions to folders only" on existing file system tree

Again, let me repeat that I don't consider those serious limitations. I'm very happy with what Rob and the team have done so far, and they are on a right track! :)

like image 36
Yan Sklyarenko Avatar answered Oct 10 '22 16:10

Yan Sklyarenko