我可以通过Wix工具集将Microsoft Visual C ++ 2010可再发行组件的安装与我的安装包集成吗?
我尝试使用自定义操作,但如果正在进行其他安装,则无法安装。有人会对如何做到这一点有任何建议吗?
另外,另一个问题是:我可以在我正在创建的MSI安装程序中调用MSI安装程序吗?
答案 0 :(得分:2)
您无法进行递归MSI安装 - 冒着明显的风险,当您收到错误时#34;另一个安装正在进行中"其他安装就是你。
如果您使用合并模块来安装VC运行时并且您有一个依赖于它们的C ++服务,您可以从StartServices(WiX ServiceControl)开始,那么您可能会发现该服务不会启动。这是因为在StartFvices操作之后的InstallFinalize之前,C ++运行时的SxS版本不可用。可能的解决方案是:
使用到C ++运行时的静态链接构建服务,但是如果这是一个问题,那么对VC ++运行时Dll的更新将不会应用于您构建的二进制文件。
在安装自己的MSI文件之前,使用像Burn这样的引导程序运行VC ++ redist exe。
将运行时Dll复制到您的app文件夹,作为仅由您的应用使用的私有副本。这种事情,陈旧但仍然适用我相信:
使用合并模块可能遇到的另一个问题是它们需要每台机器安装。如果将它们包含在每个用户安装中,则安装将失败。
答案 1 :(得分:1)
您可以使用C ++运行时合并模块安装C ++运行时文件:
How To: Install the Visual C++ Redistributable with your installer
关于你的第二个问题:不 - 这是不可能的。