[wix-users] Sanity Check: Bundling Visual C++ 2019 Redistributables
bryand at recastsoftware.com
Thu May 7 11:42:47 PDT 2020
There's a lot of information out there on this and it would appears that some of it is dated so I would appreciate a quick sanity check that I'm understanding the current situation correctly.
Our goal: The latest release of our agent software is adding a small component written in C++ and thus depends on the Visual C++ 2019 x64 Redistributable. We expect our agent to be installed on older Windows OS's including both workstation and server. It will be widely distributed within organizations so we want this bundled with the installer and not downloaded.
The WiX solution outlined in the docs (here<https://wixtoolset.org/documentation/manual/v3/howtos/redistributables_and_install_checks/install_vcredist.html>) is to use the Visual Studio merge modules.
Microsoft recommends not using them (with certain exceptions): "We recommend that you not use merge modules" (here<https://docs.microsoft.com/en-us/cpp/windows/redistributing-components-by-using-merge-modules?view=vs-2019>)
In Visual Studio 2015 they introduced Universal CRT which is built into Win 10+ but not included in any merge modules (here<https://devblogs.microsoft.com/cppblog/introducing-the-universal-crt/>).
WiX doesn't have something similar to WixNetfxExtension for C++ redistributables.
What I think that all means is that we need to move the current MSI installer to a bundle to run Microsoft's VC++ 2019 x64 installer.
One alternative I saw mentioned was to include all the Universal CRT dll with our application so we can stil rely on the merge modules. That seems less than ideal to me; I'd prefer not to be responsible for maintaining/updating those.
In any case, does that all sound correct or did I miss something along the line?
More information about the wix-users