24 – Jack Bouer vs. MSI

TL;DR – A ranting post about Wix and MSI packages




I woke up in cold sweat feeling terrified. I knew this day will not be a good one. I couldn’t explain why, I just knew…



I received horrible news this morning – I was assigned with a task to create a windows deployment package (MSI) that will install a server to IIS with a specific file layout and configuration.

At this moment I know nothing about installation packages on Windows, this is going to be an interesting day.



After spending an hour comprehending the horrible news, I figured I need to learn what the hell is a Windows Installer Package (MSI) and how do I go about creating one. I figured i’ll invest couple hours in an online course, so I went through most of this course on pluralsight (god bless the double speed streaming):

Wix Intruduction – pluralsight.com



I think I am starting to understand what is going on.
Windows has a very old installation mechanism built in to it. To perform an installation, that mechanism needs an MSI package that contains all the information for that particular installation.

Oh, ok, but how do I create such MSI package?



There are several ways to create those MSI packages. The most popular way is to use WIX Toolset (no, not the web site creation wix). WIX stands for Windows Installer XML. So we use WIX to create an MSI that will be used by msiexec.exe to perform the actual installation. Phew, try saying this 20 times in a row.



Found some useful tools:

Orca – this tool enables me to explore the MSI file and see what is actually stored in it.
InstEd – this is like Orca but has additional features like MSI package diff between different version of MSI.



Assuming I have an MSI package, to install it with extended logging and debugging info, I should execute this with the following command:

msiexec /i mypackage.msi /L*vx  “c:\msilog.txt”












Nothing works… I hate Wix and i hate MSI, they ruined my life…



It worked!
It finally worked!
I love Wix!
I love MSI!



Time to unwind, have a cold beer and watch a good TED talk



All in all it was an interesting day…
Good night…



About Shonn Lyga

Obsessed with anything and everything in Software Engineering, Technology and Science
This entry was posted in Uncategorized. Bookmark the permalink.

6 Responses to 24 – Jack Bouer vs. MSI

  1. Nik says:

    TMO uses Wix based installers for our MSIs and Bootstrappers and I can tell you that is no fun. I dread working with Wix and its horribly cluttered XML files. The sub standard documentation doesnt help too. Although there are some tools now that have attempted to put a GUI on top of the Wix engine. So essentially you can load up a GUI and configure your options and it generates the right WIX files for you but they are quite immature as of now.

    Although having said that why do you need MSI for IIS deploys? Can’t you use Webdeploy?


    • Shonn Lyga says:

      The guy who created WIX came from Microsoft, and after leaving, he started a company for MSI Installers consultancy. Maybe there is a conspiracy behind the lack of good documentation or the “ease of use” of the WIX tools 😉

      On a more serious note, they wanted to have a standard deployment pipeline for all teams. Since we have some MSI and WIX ninjas in some of the teams – this was the obvious solution.

      Maybe it is a good idea to try other solutions as a POC…


  2. MSI is a file that you can share with your customers so that they can easily install your product. As long as the installed product is an internal one you better user the built in Web Deploy feature or better yet – 3 line shell script that will copy and paste your binaries to the IIS.
    BTW – if you find yourself creating to many MSI’s I suggest you take a look at this tool http://www.advancedinstaller.com/ you have a free trial so go ahead and play with it.


    • Shonn Lyga says:

      Agreed. I suggested advancedinstaller to the team, but at the time they didn’t want to adopt yet another technology along with WIX/MSI since a lot of teams are already using it.

      I am seriously thinking about taking Web Deploy for a run. I am getting this feedback from many developers lately.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s