如何从另一个MSI调用MSI文件?

时间:2011-11-16 08:44:11

标签: installation wix driver

我正在为我的应用程序的安装项目使用WIX,我必须安装设备驱动程序以及我的应用程序设置。所以我为每个x86和x64平台提供了两个驱动程序安装程序文件(因为我必须使用difxapp_x64 / difxapp_86参考文件,我需要有两个单独的安装项目),以及一个应用程序安装项目。现在基于平台,我想从一个Msi文件(Bootstrapper!?)调用驱动程序安装程序msi文件和应用程序安装程序文件之一。我怎么能做到这一点?


经过一些搜索后我在wix 3.6中了解到有一个新工具被称为'Burn',这将帮助我调用链接在一起的安装包的集合。所以我创建了一个新的安装项目作为Bootstrapper。但是当我构建它成功创建msi文件但无法运行它时..这里是代码:

<?xml version="1.0" encoding="UTF-8"?>
<?define version="1.3.0.3"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Bundle Name="Bootstrap" Version="1.0.0.0" Manufacturer="Bootstrap" UpgradeCode="58A81C66-C066-4CA1-9712-D884C11C88BD">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
    <Chain>
       <ExePackage Id="ExeProject" 
                    SourceFile="../../../CCSetupProject/bin/Release/CCSetupProject.exe" 
                    InstallCommand="/q /ACTION=Install" 
                    Name="iCConnectInstaller"
                    Vital="yes"
                    PerMachine="yes"/>
    </Chain>
  </Bundle>
</Wix>

当我单击Bootstrapper.msi文件时,它显示“准备安装”,然后“无法打开此安装包。请联系应用程序供应商以验证这是否是有效的Windows Installer程序包。”

不知道我在这里缺少什么!,之前有人遇到过这个错误吗?

1 个答案:

答案 0 :(得分:1)

你不能拥有两个独立的包裹。

要解决此问题,您必须为驱动程序构建合并模块,然后将其与主安装合并。

通过单独的合并模块,您可以创建一个仅安装驱动程序的附加软件包,或者您可以使用产品功能选择安装的内容。