我正在使用 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++ 运行时文件被删除):如果系统上安装了两个不同的产品,两者都在内部使用相同的合并模块,并且卸载了两个产品中的一个,那么安装的运行时文件会发生什么情况? 由于缺少运行时文件,它们是否被删除并且其他产品不再工作?
提前感谢您的帮助和信息。
问候,贡纳尔