WiXSetup

Windows Installer identifiers must be stable.

The Windows Installer team blog has a picture laden blog entry that explains why primary keys in an MSI database must not change from build to build. I suggest taking a read through it because it provides a nice example of why I caution people when they are writing tools to autogenerate WiX source files. Those identifiers are not trivial pieces of data.

We (Derek lead most of the way) spend a lot of time discussing the right way to handle auto-generating identifiers in the WiX toolset. The WiX tools either generate stable identifiers or have warnings that explicitly state that the auto-generated identifiers are not stable and thus should not be used in a repeated process.

As a result, the WiX toolset is sometimes harder to use but builds very high quality Windows Installer databases (unless the developer chooses ignore the warnings <smile/>). We’re also making progress in WiX v3 on drastically improving the usability in the common auto-generation scenarios without sacrificing the quality of the created Windows Installer packages. More on this in a month or so.

PS: Primary keys in the Windows Installer map (almost exclusively) to the Id attributes in the WiX toolset.