Using Wix to create 32bit and 64bit installers from one .wxs file

Rather than conditionally including the opening Directory elements (which invalidates the XML), conditionally set preprocessor variables which are used as directory names, as @Daniel Pratt’s comment refers to. Similarly, having a “yes/no” variable conditioned on platform makes it easy to set up 64 bit components, registry searches, etc. Defining the variables (From this answer) <?if … Read more

WiX Includes vs Fragments

The file extension is a convenience, the content of the file is what really matters. The distinction makes it easier to manage the difference between the actual installation (wxs files) and the properties required to create the installation (wxi files). For example, your wxs files specify the product and its contents (which files you install) … Read more

How to register file types/extensions with a WiX installer?

Unfortunately there’s no way to do a “safe” association with Windows Installer. We just write everything out to the registry and then have a separate component that takes over the system-wide default and is only installed if no other application has already registered itself as the default. With Vista there’s the new “default programs” interface, … Read more

In WiX files, what does Name=”SourceDir” refer to?

From: https://robmensching.com/blog/posts/2010/1/26/stackoverflow-what-does-namesourcedir-refer-to/ Honestly, it’s something that we should have hidden from the developer but didn’t. Sorry. The truth of the matter is that the Windows Installer expects the Directory tree to always be rooted in a Directory row where the primary key (Directory/@Id) is “TARGETDIR” and the DefaultDir column (Directory/@Name) is “SourceDir”. During an install, … Read more

WiX 3.0 throws error 217, while being executed by continuous integration

End of the story: After fiddling with the permissions of the integration account, DCOM, service activation, etc. without any luck, I finally simply disabled ICE validation in the continuous integration build, while still keeping it in the local build. To disable ICE validation you can set SuppressValidation to true in the .wixproj file: <PropertyGroup> <SuppressValidation>true</SuppressValidation> … Read more

tech