A couple weeks ago I saw Mike Gunderloy’s article about getting started with the Windows Installer XML (WiX) toolset. It was a pretty decent introduction to WiX. However, I disagreed with a couple items in the article that I’d like to discuss.
First, near the beginning the article there is a sentence that says Component GUIDs “must be unique across all packages, regardless of product.” Unless I’m misinterpreting that sentence, that statement is incorrect according to the Component Rules. The Component Rules state that a Component’s contents cannot change once the package is released. In other words, the Resource(s) contained by a Component must always be packaged in the same Component in the same way. Since the Windows Installer identifies Components by their GUID, a Component’s GUID must remain the same across all packages that contain the same Resources.
Second, the end of the article provides some advice on how to build more complex setup packages. The article mentions that you could use Access or Excel (or some other data store) to store the data for your MSI package then use some sort of export mechanism to generate the WiX source file for your product. While this is true, there is a far more powerful way to create complex setup packages using the WiX toolset. I would suggest breaking your .wxs source file into fragments and let the linker tie your symbols and references back into a cohesive product. See my previous blog entry for more details about symbols and references.
Finally, it took me too long to get this blog entry posted. It literally took me two weeks to get the blog entry about sections, symbols, and references in the WiX toolset written and this entry was blocked behind that effort. Therefore, in and effort to get more information posted, I am now trying to reduce the amount of information per blog entry and post more often. We’ll see if that works better. Comments with constructive feedback and/or suggestions are always welcome.