[wix-devs] support VS 2019 #5923

Rob Mensching rob at firegiant.com
Thu Dec 20 09:11:03 PST 2018

This is the thread I should have been responding to. :)

-----Original Message-----
From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of Christopher Painter via wix-devs
Sent: Sunday, December 16, 2018 4:51 PM
To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Cc: Christopher Painter <chrpai at iswix.com>
Subject: [wix-devs] RFC: support VS 2019 #5923

I took a look at getting VS2019 support in the VsExt as I need this to update my IsWiX installer to register itself with VS2019.  I was able to get a working solution.  I present it for your consideration but imagine there might be better ways to do this and you might want to wait longer  before taking it.

The concept is simple.  Working of a fork of  the wix3 develop branch (3.14 is on my radar.. 4.x and the new repos wasn't really looked at but I imagine this patch can easily be applied there also )    I made the following changes:

Clone VS2017 -> VS2019.wxs  and replace all occurrences of 17 with 19

Update VSExtension.wixproj  and add VS2019.wxs to the list of files to compile


Update vsca.cpp

-- clone the ProcessVS2017 function to ProcessVS2019 and update all 17 occurrences to 19

-- update vrgInstances and add a new FILEMAKEVERSION element referencing 16 and ProcessVS2019

Actual changes can be found here: https://github.com/chrpai/wix3/tree/vsext/src/ext/VSExtension

I build a private build of wix3.14  with this code and used it to build a new IsWiX.msi using the new 2019 property and custom action elements.  Everything built and installed on a clean VM as expected.    IsWiX now works on 2019.

I also created a dummy MSI  and added every single PropertyRef  to it.  They all had values in the resulting installer log file.

My biggest problem with this is the ProcessVS2019  function isn't dry.   Some refactoring might be needed to create a common ProcessVS  method passing in data to make it more DRY.   This is way beyond my C/C++ capabilities so someone else would need to do this.   I just followed the existing code patterns and copy/pasted/transformed everything  nice and simple and it worked first try.


WiX Toolset Developer Mailing List provided by FireGiant http://www.firegiant.com/

More information about the wix-devs mailing list