Lazy Patching in WiX 3.6

With the upcoming release of WiX 3.6, I like to share about how I have used Burn to implement patching using a process I like to call lazy patching. Now I’ve never been a big fan of creating patches. I prefer to implement major upgrades and change the version number and product code with every build.  That said, I have a requirement to be able to install a patch and have only a few files get modified. Since I am versioning each dll with every build, I can’t use traditional patching techniques of comparing two .msis because each binary would get modified (even if by only a few bits).

Thanks to Burn, we can easily create a Bundle that includes all of our prereqs and packages to be included in a single product deployment. In my WiX Bootstrapper project, I include a RelatedBundle element and specify the UpgradeCode as its Id. So version of MyProduct will have the following bits in Bundle.wxs:

Read the rest of this entry »