I have a c++ application developed using Visual Studio 2015, along with a Wix installer and a Burn bootstrapper. Previous versions of the application were able to use the Visual Studio merge module to install the necessary prerequisites, but it appears that this isn't an option when using Visual Studio 2015 (see Redistributables for deploying C++ exe developed with Visual Studio 2015 on Windows 7).
Following the advice in that link, we have started installing vcredist with Burn using an ExePackage with vital="yes". This mostly works great - we've had several customers who have the installation fail because of various issues with vcredist. Until recently, these were errors that should cause the installation to fail.
In the past couple of days we've received several reports of our installer failing due to a newer version of the redistributable being installed: vcredist fails with error code 0x80070666, which causes our bootstrapper to fail.
My questions are:
- Is deploying vcredist the "correct" approach to take? (Assuming we need to have a single exe installer)
- How can we tell what version of the redistributables are installed (not necessarily in the bootstrapper, is this information stored in a user readable form somewhere)?
- Is there a newer version of the redistributables that we should be distributing? (Currently using 14.0.23026) Is this based on the version of Visual Studio that is being used to compile or should we always distribute the latest version? (Current VS version 14.0.23107.0)
- As a last resort, is it possible to detect the error code returned from vcredist and allow that value to determine if the installation continues or fails?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…