My Wix Journey - Day 2 @ 4:54pm EDT

(Part of a multi-part story on WiX)

Well, it has certainly been a long day.  Today, I've been working on reverse engineering my current install, written with InstallShield 9, using Windows Installer.  WiX has a tool called 'dark.exe' that allows you to convert an MSI database into a valid WiX xml format.

So, after "Darking" my existing MSI, I find roughly 6,000 lines of rather dense XML.  As I'm intimately familiar with the previous installation, reviewing this WiX-generated code gives me a good 'feel' for how WiX works.  I'm afraid that I won't be able to use most of the generated code, however.  We used InstallScript to write our custom actions, and since we are dumping Installshield, we have to dump many custom actions, too.  Fortunately, WiX will perform the bulk of the work with it's built in Custom Action library.  I'm particularly looking forward to using the database and IIS portions of the CA library.

There's one outstanding WiX bug where the Database gets 'dropped' during a rollback operation.  I'll have to make certain to test heavily to make certain that rollback doesn't do this to my install - that's a pretty severe issue.  The cool thing about this being an open source project is that if no-one else fixes it, I can always do so myself.  (Not like InstallShield, where I'm still experiencing some of the same bugs left over from IS 7.0)
So, since I'm going to have to actually maintain this stuff in the future, I won't be using Dark.exe to 'copy' the previous installation.

The WiX community seems to be Anti-managed code for custom actions.  That's unfortunate, as my C# skills are stronger than my C++ ones.  I've looked at the current WiX CAs implemented in C++, and they certainly don't look fun to modify (or author, for that point).  I'd much rather do managed CAs, and I'll probably use C++ custom actions as a wrapper around C# managed methods.

I think my next post will be a walk-through on how to take an existing Dialog from InstallShield and convert it into a WiX dialog.

3 Comments

  • I'm in the same boat as you re: managed CAs. I look forward to seeing how your efforts with them turn out.

  • Jerry,

    This is great! I have gone through the same questions. All my custom actions using InstallShield9 are VBScript but I would love to move to managed code. That is strange that the WIX community seems to be anti-managed code! I am so tired of VBScript and ready to move to C#. I look forward to your solution. By the way how active are you in the wix community and where is this community. Are there other wix bloggers? Thanks.

  • Hi Brandon -



    The 'hangout' location of most of the WiX users is on the WiX-Users mailing list, off of the SourceForge Wix project page. Here you will find some in-depth discussions involving the details of building setups using WiX. The response rate is pretty good - I've already asked one question today, and got an answer a few hours later.



    The documentation needs some improvement, so subscribing to the mailing list is almost a must. I've been lurking on the WiX list for the last few months, and having easy access to my personal archive of emails has been a godsend when I finally started this project.



    If you are considering WiX, subscribe to the email list today, and monitor it in the background. You'll find that there are several informal 'best practice' discussions that will be pertinent.

Comments have been disabled for this content.