Вам нужно будет использовать загрузчик, чтобы связать установку Bonjour с вашим установщиком.Если вы используете WiX 3.6 или более позднюю версию, лучше использовать Burn для создания пакета.
Я нашел установщик Bonjour, скачав Bonjour SDK и открыв его в 7-zipХотя я уверен, что установка SDK также предоставит к нему доступ.
Обычно я хотел бы сделать это, добавив новый исходный файл в ваш проект установки для каждого пакета зависимостей, чтобы сохранить эту логикуотдельно от основной настройки приложения.
Пакет Bonjour может быть указан как удаленная полезная нагрузка для извлечения на лету или для встроенной установки.В этом случае кажется более вероятным встроить его (Compressed = "yes").Если вам нужно добавить какие-либо дополнительные зависимости, связанные с bonjour или параметрами для передачи в него, вы также можете определить их здесь.
<Fragment>
<!-- if a web link actually exists, I didn't find it... -->
<?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>
В вашем основном пакете вам просто нужно добавить ссылку на правильный пакетgroup.
<Chain>
<PackageGroupRef Id="Bonjour"/>
<MsiPackage SourceFile="path\to\YourProduct.msi"/>
</Chain>
Поскольку Bonjour использует MSI вместо исполняемого файла, вам не нужно ничего делать, чтобы определить, присутствует он или нет;Берн с этим справится.На самом деле, поскольку WiX собирает большую часть информации, необходимой вашему пакету, от MSI, это может быть излишним, и вы можете просто вставить элемент MsiPackage в свою цепочку напрямую.
Не забудьте тщательно проверить Условия Apple для этого.