执行与安装捆绑的MSI

时间:2011-01-24 07:36:35

标签: visual-studio-2008 windows-installer custom-action msiexec

我创建了一个MSI,其中还包含水晶报告的安装程序文件(CRRedist2008_x86.msi)。 我想和主安装程序一起执行水晶报告MSI。 我明白,我必须使用某种自定义操作,但我不确定具体的方法。

也许步骤是

i)让主要装置完成 ii)使用msiexec命令执行“CRRedist2008_x86.msi”[我不知道该怎么做]

有人可以就如何实现这一目标向我提供指导吗?

2 个答案:

答案 0 :(得分:2)

你最好的选择是使用一个引导程序(我听说过有关免费dotNetInstaller的好东西,或者有商业替代品可用)

然后配置您的引导程序以执行以下操作:

  • 检查Crystal Reports,如果不存在则安装
  • 检查是否有其他依赖项,如果不存在则尝试安装
  • 运行您的安装文件(应该再次进行这些检查,如果尚未安装依赖项则中止)

例如,我使用bootstrapper检查

  • Windows Installer 3.1
  • .NET 2.0 +

如果它们不存在,则会从网上下载并自动安装。这一切都发生在主安装开始之前。

希望有所帮助:)

答案 1 :(得分:1)

有两种方法:

  1. 添加Crystal Reports安装程序作为先决条件。大多数设置创作工具都支持此功能,这是推荐的方法。

  2. 创建启动第二个安装程序的自定义操作。 Windows Installer没有用于将其他MSI作为常规文件启动的预定义自定义操作,但您可以尝试创建使用ShellExecute启动MSI文件的自定义EXE。

  3. 要在安装结束时运行另一个MSI安装程序,您需要在InstallFinalize操作之后安排它并使用 msidbCustomActionTypeAsync msidbCustomActionTypeContinue 标志运行它: http://msdn.microsoft.com/en-us/library/aa368071(VS.85).aspx

相关问题