Пакет установки Windows Bonjour от Apple в нашу MSI - PullRequest
7 голосов
/ 20 июня 2011

Меня попросили включить установщик Apple Bonjour в наш собственный установщик msi, чтобы Bonjour автоматически устанавливался вместе с нашим программным обеспечением.Кто-нибудь делал это раньше?Это не кажется тривиальным, так как установщик MSI не может включить и запустить другой.Я предполагаю, что мне понадобится какой-нибудь командный файл, чтобы запустить два установщика последовательно?

Ответы [ 4 ]

9 голосов
/ 20 июня 2011

Вам нужно будет использовать загрузчик, чтобы связать установку 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 для этого.

1 голос
/ 22 июня 2011

Это будет немного больше работы и может привести к проблемам с обновлением, но вы можете взять Bonjour MSI и декомпилировать его, используя dark. Преобразуйте декомпилированный MSI в модуль Merge, который может быть включен в ваш установщик, и у вас будет одна установка. Я делал это с некоторыми установками драйверов в прошлом, и обычно это не так сложно.

1 голос
/ 20 июня 2011

Вам нужен загрузчик;Есть несколько свободно доступных, в том числе один разрабатывается в WiX под названием Burn.

0 голосов
/ 04 января 2016

Wix Burn теперь относительно стабилен. Я использую Wix 3.8.

Если вам разрешено распространять программу установки Bonjour, вы можете связать программу установки в Wix Burn. Вы даже можете поставить условие, чтобы указать Bonjour как предварительное условие для вашего установщика. Если его нет, Bonjour будет развернут, иначе его можно пропустить.

Вы можете проверить эту ссылку для понимания Burn.

http://wixtoolset.org/documentation/manual/v3/bundle/

...