You will need to use the bootloader to link the Bonjour installation with your installer. If you are using WiX 3.6 or later, using Burn to create a package is a good option.
I found the Bonjour installer by downloading the Bonjour SDK and opening it in 7-zip, although I am sure that installing the SDK will also provide access to it.
I usually like to do this by adding a new source file to your installation project for each dependency package so that this logic is separate from the main installation of the application.
The Bonjour package can be specified as a remote payload for on-the-fly search or embed it in your setup. In this case, most likely, it will be built (compressed = "yes"). If you need to add any additional dependencies related to bonjour or parameters to go into it, you can also define them here.
<Fragment> <?define BonjourWebLink = "http://path/to/Bonjour.msi"?> <PackageGroup Id="BonjourWeb"> <MsiPackage Id="BonjourWeb" Compressed="no" DownloadUrl="$(var.BonjourWebLink)"> </MsiPackage> </PackageGroup> <PackageGroup Id="Bonjour"> <MsiPackage Id="Bonjour" Compressed="yes" SourceFile="path\to\Bonjour.msi"/> </PackageGroup> </Fragment>
In your main bundle, you just need to add a link to the correct package group.
<Chain> <PackageGroupRef Id="Bonjour"/> <MsiPackage SourceFile="path\to\YourProduct.msi"/> </Chain>
Since Bonjour uses MSI instead of an executable, you do not need to do anything to determine if it is present or not; Burn will handle this for you. In fact, since WiX collects most of the information your package needs from MSI, this may be redundant, and you can simply directly add the MsiPackage element to your chain.
Be sure to carefully check Appleβs terms for this.
Dave andersen
source share