HeatWave

HeatWave is FireGiant's Visual Studio extension for WiX v4. HeatWave Community Edition is available free of charge and provides:

  • Conversion of WiX v3 projects and authoring
  • Building of WiX v4 SDK-style projects
  • Project references and WiX extension package references
  • Project and item templates
  • Property pages to control how the project builds

HeatWave peacefully coexists with the WiX v3 Visual Studio extension, which lets you mix and match WiX v3 and WiX v4 projects in a solution. You can convert the WiX v3 projects to WiX v4 gradually.

Installing HeatWave

HeatWave is available from the Visual Studio Marketplace.

Double-click the downloaded .vsix file to install HeatWave.

Converting WiX v3 projects and authoring

With HeatWave, you can convert WiX v3 .wixproj projects to WiX v4 using the Upgrade to WiX v4 command on the Project menu or context menu in Solution Explorer.

HeatWave converter screenshot

When you confirm, HeatWave converts the WiX v3 .wixproj to v4 as an SDK-style MSBuild project. It also converts the WiX source files you selected. If HeatWave encountered any errors during the automated conversion, it shows them in a .log file so you can rectify the problem using human-brain-style conversion. The WiX team is collecting real-world reports of how to handle manual conversion here.

Create a new project

HeatWave includes templates for common WiX v4 project types, like MSI packages, bundles, and WiX libraries. The quickest way to see those templates on the Visual Studio Create a new project window is to filter by WiX under language.

HeatWave templates in new project window

Create a new file

HeatWave also includes templates for common WiX v4 project items, like source files, include files, and localization string files.

HeatWave templates in new item window

Add WiX extensions

In WiX v4, WiX extensions are available as NuGet packages and HeatWave lets you choose them using the NuGet Package Manager in Visual Studio. Open NuGet Package Manager (among other methods) from the .wixproj context menu in Solution Explorer by choosing Manage NuGet Packages. One trick to finding all the extensions published by the WiX team is to search for wixext -- all the WiX extensions end in that name.

Select the extension you want to add, like WixToolset.Util.wixext, and choose Install. HeatWave, Visual Studio, and NuGet will work together to get the WiX extension and add it as a dependency in your project. You can expand Dependencies to show that the extension is loaded and the NuGet package it came from.

HeatWave .wixproj Dependencies node showing WiX extensions

Add project references

If your WiX project consumes the output of another project—like a .wixproj that packages the .exe from a .csproj into an .msi—you can add a project reference to ensure that Visual Studio (and MSBuild for command line and CI/CD builds) builds the projects in the right order.

To add a project reference, right-click Dependencies in the WiX project in Solution Explorer and choose Add Project Reference.

HeatWave Reference Manager dialog

In Reference Manager, select the projects to reference and choose OK.

Now when you build, the referenced projects will build before your WiX project.

Build

HeatWave supports all the typical build-related commands you'd expect for WiX projects: Build, Rebuild, Clean. WiX projects build along with any other project inside Visual Studio solutions.

From the command line and on CI/CD build systems, you can build projects you created with HeatWave with MSBuild and dotnet build.

HeatWave Support

If you experience any bugs or other odd, unexpected, or otherwise mysterious behvaior in FireGiant HeatWave, please open an issue here.

If you're running into any bugs or other oddities using WiX itself, please open an issue here.