Wix Toolset安装C ++ 2010 Redistributable

时间:2015-05-25 18:40:05

标签: wix visual-c++-2010 wix3.8 wix3.9

我可以通过Wix工具集将Microsoft Visual C ++ 2010可再发行组件的安装与我的安装包集成吗?

我尝试使用自定义操作,但如果正在进行其他安装,则无法安装。有人会对如何做到这一点有任何建议吗?

另外,另一个问题是:我可以在我正在创建的MSI安装程序中调用MSI安装程序吗?

2 个答案:

答案 0 :(得分:2)

您无法进行递归MSI安装 - 冒着明显的风险,当您收到错误时#34;另一个安装正在进行中"其他安装就是你。

如果您使用合并模块来安装VC运行时并且您有一个依赖于它们的C ++服务,您可以从StartServices(WiX ServiceControl)开始,那么您可能会发现该服务不会启动。这是因为在StartFvices操作之后的InstallFinalize之前,C ++运行时的SxS版本不可用。可能的解决方案是:

使用到C ++运行时的静态链接构建服务,但是如果这是一个问题,那么对VC ++运行时Dll的更新将不会应用于您构建的二进制文件。

在安装自己的MSI文件之前,使用像Burn这样的引导程序运行VC ++ redist exe。

将运行时Dll复制到您的app文件夹,作为仅由您的应用使用的私有副本。这种事情,陈旧但仍然适用我相信:

http://blogs.msdn.com/b/vcblog/archive/2007/10/12/how-to-redistribute-the-visual-c-libraries-with-your-application.aspx

使用合并模块可能遇到的另一个问题是它们需要每台机器安装。如果将它们包含在每个用户安装中,则安装将失败。

答案 1 :(得分:1)

您可以使用C ++运行时合并模块安装C ++运行时文件:

How To: Install the Visual C++ Redistributable with your installer

关于你的第二个问题:不 - 这是不可能的。