WiX

Tallow! Beware!

  I think Tallow is a cool tool it can save you a lot of typing when creating a wix installation. I recently used it to create a couple of installations for a project I’m not. It was then I noticed it does have one downside: it does not add a Guid attribute to any of the Component tags it generates.   I know this does sounds like a major thing, but it had me scratching my head of a while. The installation I had created was not uninstalling correctly and I no idea why, other...

Creating a virtual directory with Wix works a treat

I’ve just tried out creating a virtual directory with Wix and there’s really not that much too it, there’s a couple of places where the syntax isn’t that intuitive but the compiler nudges you in the right direction. I thought I’d share my experience anyway as the Wix post seem quite popular and it’s often nice to have a template to start from if you’re setting out to do these things.   There’s just three parts to it, first you create the files for you’re website in the location of you’re choosing. Something like this:   <Directory...

pduck.com

Not strictly a wix site, but lots of interesting about windows installer: http://www.pduck.com

Wix Custom Actions

An msi is really a relational database made up of a number of tables. When an installation runs the windows installer parses the msi and then queries tables to see what actions it must perform. Msdn has a complete list of tables that the windows installer uses and it’s very worth while checking it out because it will give you a good idea of what you’re install is going to do and why.   If you use certain wix elements you may notice they create tables that are not listed in the msdn documentation. This...

Creating Users with Wix – It Works

On the 10th September a new version of wix was released. This included two library files that would add the necessary elements to you’re wix file to drive the custom actions. This means creating a new user now works correctly. I’ve even tested adding the user to a group seems to work okay, although I am little cynical to whether this will work on a machine set up in a foreign language as the name of well know groups varies here. I will be testing this when I return to Denmark on tomorrow.

Installing Services, User, Virtual Directories etc. using Wix

If you have had a look at the documentation you’ve probably noticed a few elements like “ServiceInstall”, “User” and “WebVirtualDir”. What these elements all have in common is that if you add them to a wix document they will compile and link with out any problem, but they will not do anything at all on installation. If you take a closer at the msi produced using the reason they do nothing becomes clear, for example the User elements generates a table called user in the Msi and if you read the windows installer documentation you will quickly see there is...

Running .NET installer classes – Reverse engineering what VS.NET does

Rob Mensching has been promising to put an updated version of WiX with better written documentation on sourceforget.net for a while now. But at the time of writing the May 27th build is still the latest one. But do you know what? I’m beginning not to care. I’m actually getting to the point where I can do anything I want: though the gifts of dark and orca (for examining what’s going on in an msi) and virtual pc for an easy way to test roll outs.   After the epic that was finding out...

CustomActions and uninstalls

I needed to add a CustomAction that removed the native image from the GAC. To do this I came across more slightly odd behaviour from the windows install platform so I thought I’d write a blog entry about it.   At first glance creating an uninstall action looks dead easy. Just create a custom action that does the opposite of what you did on install. In the case of ngen this is just adding an extra /delete switch, an absolute cinch! The syntax for the remove custom action is shown below. Note the use of...

NGen Custom Actions using WiX – Part II: Type 34 actions

As I alluded to in my last wix blog entry if you want to provide any sort of location robust access to well known folders Type 50 CustomActions are not for you. I thought I could get away with this as we’re just using msi to deploy our bespoke app to the testing environments which we control. However my boss came to me this morning saying they had one machine on behaving in a pre-jited manor could I take a look; sure enough the windows folder on this machine was c:\winnt rather than...

NGen Custom Actions using WiX

I recently had to create an msi installer that ran ngen on each of the assemblies that I installed. I had a number of difficulties doing this, so I thought I share my findings here an hopefully save others a bit of time.   I won’t have been able to do this at all with out orca, an MSI decompiler supplied with the installer section of the platform SDK. Also looking at the definitions of the MSI tables helped a lot.   The CustomActions is a bit of a strange beastie, it has just 4 column, these...

Full WiX Archive