我有一个使用 Visual Studio 2015 开发的 c++ 应用程序,以及一个 Wix 安装程序和一个 Burn 引导程序。该应用程序的早期版本能够使用 Visual Studio 合并模块来安装必要的先决条件,但在使用 Visual Studio 2015 时这似乎不是一个选项(请参阅Redistributables 以在 Windows 7 上部署使用 Visual Studio 2015 开发的 C++ exe)。
按照该链接中的建议,我们已经开始使用带有 vital="yes" 的 ExePackage 安装带有 Burn 的 vcredist。这通常效果很好 - 我们有几个客户由于 vcredist 的各种问题而安装失败。直到最近,这些都是会导致安装失败的错误。
在过去的几天里,我们收到了几份由于安装了更新版本的可再发行组件而导致安装程序失败的报告:vcredist 失败,错误代码为 0x80070666,这导致我们的引导程序失败。
我的问题是:
- 部署 vcredist 是“正确”的方法吗?(假设我们需要一个 exe 安装程序)
- 我们如何知道安装了哪个版本的可再发行组件(不一定在引导程序中,这些信息是否以用户可读的形式存储在某处)?
- 是否有我们应该分发的更新版本的可再发行产品?(目前使用 14.0.23026)这是基于用于编译的 Visual Studio 版本还是我们应该始终分发最新版本?(当前 VS 版本 14.0.23107.0)
- 作为最后的手段,是否可以检测从 vcredist 返回的错误代码并允许该值确定安装是继续还是失败?