What are limitations of WiX and WiX Toolset?
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.e开发者_运维知识库xe).
- 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.
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.
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! :)
精彩评论