我正在使用 WiX 构建 MSI 安装程序。由于应该安装的产品需要 VC++ 运行时,我找到了两个选项:(a) 使用相应的合并模块和 (b) 在实际产品的 MSI 之前使用 Burn 运行 vcredist。为了区分这两个选项,我有一些我没有找到相关信息的问题。
1)如果使用合并模块,运行时不会单独安装(添加和删除程序中没有条目)但据我所知只是将所需的文件复制到相应的位置。
1.1) 如果系统上已经安装了 vcredist,我想合并模块在产品安装过程中什么都不做?
1.2) 如果存在 1.1) 中提到的 vcredist 安装,如果用户只是通过添加和删除程序卸载该运行时会发生什么?我想该产品不再工作(至少在执行修复安装之前会导致 MSI 中的合并模块内容重新添加必要的文件?)
1.3) 如果尚未安装 vcredist 并且 MSI 安装程序将文件复制到系统,然后另一个安装程序或用户正在调用 vcredist.exe 会发生什么?vcredist 是否报告运行时已安装?
1.4) 如果卸载产品,文件是否通过被删除的合并模块复制到系统中?
1.5) 如果对 1.4) 的回答是(删除了 VC++ 运行时文件):如果系统上安装了两个不同的产品,它们都在内部使用相同的合并模块,并且卸载了两个产品之一,则安装的运行时文件会发生什么? 由于缺少运行时文件,它们是否被删除并且其他产品不再工作?
在此先感谢您的帮助和信息。
问候, 贡纳尔