Prady
Prady

Reputation: 693

How to call a MSI file from another MSI?

I am using WIX for my application's setup project, I have to install device drivers along with my application setup. so I have two driver installer files for each x86 and x64 platforms (since I have to use difxapp_x64/difxapp_86 reference file I need to have two separate installation projects), and one application setup project. now based on the platform I want to call either one of the driver installer msi file and the application installer file from one Msi file ( Bootstrapper !?). How can I accomplish this ?


after a bit of search i come to know in wix 3.6 there is a new tool know as 'Burn', this will help me to call collection of installation packages that are chained together.. so I have created a new setup project as Bootstrapper. but when I build its creating the msi file successfully but could not able to run it.. here is the code:

<?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>

when I click the Bootstrapper.msi file it says "Preparing to install" and then "This installation package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer package."

dont know what I am missing here!, anybody got this error before ?

Upvotes: 2

Views: 1450

Answers (1)

Luca
Luca

Reputation: 12001

You can't by having two separate packages.

To solve the problem you have to build a merge module for the drivers, and then merge it with the main installation.

By having a separate merge module, you can create an additional package which install only the drivers, or you can use product features to select what is gettin installed.

Upvotes: 1

Related Questions