Skip to content
Richard Martin edited this page Apr 11, 2024 · 5 revisions

With this tutorial, you can learn how to build custom installation bundles using WiX. The associated repo includes two working solutions, one targeting .NET 4.6.2 and another for .NET 8.0.

This is for an intermediate to advanced audience and assumes you have experience with both .NET and WiX and are familiar with the XML syntax WiX uses.

I've Built Bundles in WiX 3

Whether you're considering a conversion, or you plan to start fresh with v4, you may not be interested in a walkthrough of a solution that looks nothing like yours. I suggest reviewing these topics to see if they can give you the quick help you need.

  • Solution Overview
  • Bundle Source
  • WiX Config
  • WpfBaFactory Class
  • WiX 4 now requires a valid window handle be passed to the IEngine.Apply method. So, if your BA is running silently, just create a window and don't show it.
  • Some BootstrapperApplication event names and some of the event arguments have changed. Some new events were added. Depending on the complexity of your WiX 3 BA, your mileage may vary successfully wrangling with these changes.

Changes for WiX 5

The bulk of this tutorial applies to v5.

This page goes over changes and some gotchas you'll want to be aware of.

How to Use This Tutorial

This wiki covers concepts and provides a code walkthrough.

The associated repo includes WiX 4 .NET Framework and .NET Core solutions as well as a WiX 5 solution. Each of the important source files have accompanying pages in the wiki which go into much more detail than can be reasonably be provided in code comments.

For an organized walkthrough, navigation links can be found at the bottom of each page. Following these links will guide the reader through building their own bundle.

Building the Sample Solutions

There is no build script. Open either Framework\Framework.sln or Core\Core.sln in Visual Studio and build.

Windows Sandbox

Both solutions contain a Windows Sandbox config file that you can use for testing.

Next: Concepts