[wix-users] Has anyone have made an installer that downloads and installs dependencies first?

Phill Hogland phill.hogland at rimage.com
Mon Nov 16 06:54:00 PST 2015


No problem.  The link (https://www.firegiant.com/wix/tutorial/net-and-net/bootstrapping/) to the tutorial is talking about using ExePackage to chain a setup.exe dependency with your MSI package.  There are other kinds of packages that can also be chained (MSI,MSU). 

I do not have direct experience with Cygwin, however here (https://cygwin.com/install.html ) there is a setup.exe.  so I would 

1) download that package to my local network.
2) Manually test installing that package on a target system to get the desired syntax of any optional parameters.
3) Create the MSI project for my application that depends on the above package.  (I prefer to create the MSI without any UI, and let the bootstrapper present the setup UI for a better user experience).
4) Create a bundle (setup.exe) project.
5) for the dependency create a ExePackage that describes the dependency, something like this: (there are also other approaches, see RemotePayloads)
      <ExePackage Id="VBPowerPacks"
                  PerMachine="yes"
                  Permanent="yes"
                  Vital="yes"
                  Compressed="no"
                  Name="VBPowerPacks\en\VisualBasicPowerPacksSetup.exe"
                  SourceFile="Microsoft\VBPowerPacks\en\VisualBasicPowerPacksSetup.exe"
                  InstallCommand="/q:a /norestart"
                  RepairCommand=""
                  InstallCondition="NOT VBPowerPacks_Exists OR VBPowerPacks_Exists=0"
                  DetectCondition="VBPowerPacks_Exists=1"
                  >
        <ExitCode Value ="3010" Behavior="scheduleReboot" />
      </ExePackage>

This is not for Cygwin but a similar concept.  I use a registry search to detect if this dependency is already installed and if not I install it Permanent (meaning I do not uninstall it)  (You might have other requierments.)
    <util:RegistrySearch Id="VBPowerPacks" Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{85317F07-8719-36EF-B19E-B196F383D0F3}"
                         Value="UninstallString" Variable="VBPowerPacks_Exists" Result="exists" Win64="no" />

Also rather than provide a file path in the ExePackage/@SourceFile, which you can do, I use the <Bundle project>Properties page, ToolSettings panel to define:
-b path_to_my_third-party_setups\

6) create a MsiPackage to describe the MSI to be added to the bundle.exe chain.  Pass public Properties to the MSI using MsiProperty element.
7) Build the MSI, and then the Bundle project.

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Daniel Rodriguez
Sent: Monday, November 16, 2015 8:20 AM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Has anyone have made an installer that downloads and installs dependencies first?

Phill, I'm sorry but I need to ask,

What do I do with non-MSI installers as dependencies?

For example, cygwin doesn't provide a MSI installer!

Thanks again for your time and patience.

2015-11-16 8:59 GMT-05:00 Daniel Rodriguez <sadasant at gmail.com>:

> Thanks again Phill, I will do that!
>
> 2015-11-16 8:58 GMT-05:00 Phill Hogland <phill.hogland at rimage.com>:
>
>> As you work on the next step, you might also download the wix toolset 
>> source zip archive for the version of the Wixtoolset that you are 
>> using.  I find it useful to use Notepad++ or similar to search the 
>> source code for examples of how a particular issue that I am trying to solve is addressed.
>> The source for the setup used to install the Wix Toolset is at src\Setup.
>> There is a Bundle project and several MSI package projects with a 
>> managed WixBA project.  You will probably use the 
>> WixStandardBootstrapper initially, but I found it worthwhile to study 
>> these projects as I was learning the Wix ways.  There is also a 
>> CommonLib project showing how to put common code in a wixlib.
>>
>> -----Original Message-----
>> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On 
>> Behalf Of Daniel Rodriguez
>> Sent: Monday, November 16, 2015 7:46 AM
>> To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
>> Subject: Re: [wix-users] Has anyone have made an installer that 
>> downloads and installs dependencies first?
>>
>> Thank you Phil! That guided me into the next step.
>>
>> 2015-11-16 8:42 GMT-05:00 Phill Hogland <phill.hogland at rimage.com>:
>>
>> > When you have a third-party installer on which your app depends, 
>> > then create a Burn bundle (in VS the Wix setup.exe template) 
>> > project to chain the dependency with your MSI package(s).
>> > https://www.firegiant.com/wix/tutorial/net-and-net/bootstrapping/
>> >
>> > Do not try to launch a nested setup from within an MSI, as that is 
>> > strongly discouraged.
>> >
>> > -----Original Message-----
>> > From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On 
>> > Behalf Of Daniel Rodriguez
>> > Sent: Sunday, November 15, 2015 4:51 PM
>> > To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
>> > Subject: [wix-users] Has anyone have made an installer that 
>> > downloads and installs dependencies first?
>> >
>> > Hi, I'm new with WiX, I've read the FireGiant tutorial (most of 
>> > it), it's a beautiful piece of information but I'm still clueless 
>> > about one requirement in my project, let me explain: I need to make 
>> > an installer that has to download cygwin and run some stuff inside 
>> > of cygwin before the program is ready.
>> >
>> > I'm aware that I can add custom actions, so I can download 
>> > dependencies, but that means I will need to download cygwin's 
>> > installer, right? and thus I will need to run that installer from 
>> > my
>> installer?? Is that the right way?
>> >
>> > I'm happy to know that I'll be learning many things in this project 
>> > but that particular point is not clearly defined for me, I prefer 
>> > to ask instead of trying to go bind to see if any attempt works, so 
>> > I wonder if any of you has an example that does something similar 
>> > that I could use to learn how to achieve my goals, or anything that 
>> > could
>> guide me.
>> >
>> > In any case, thanks for your time, I appreciate it.
>> >
>> > ___________________________________________________________________
>> > _ WiX Toolset Users Mailing List provided by FireGiant 
>> > http://www.firegiant.com/
>> >
>> > ___________________________________________________________________
>> > _ WiX Toolset Users Mailing List provided by FireGiant 
>> > http://www.firegiant.com/
>> >
>>
>>
>>
>> --
>> *Daniel J. Rodríguez S.*
>> *http://sadasant.com/ <http://sadasant.com/>*
>>
>> ____________________________________________________________________
>> WiX Toolset Users Mailing List provided by FireGiant 
>> http://www.firegiant.com/
>>
>> ____________________________________________________________________
>> WiX Toolset Users Mailing List provided by FireGiant 
>> http://www.firegiant.com/
>>
>
>
>
> --
> *Daniel J. Rodríguez S.*
> *http://sadasant.com/ <http://sadasant.com/>*
>



--
*Daniel J. Rodríguez S.*
*http://sadasant.com/ <http://sadasant.com/>*

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/


More information about the wix-users mailing list