Как добавить весь каталог или вывод проекта в пакет WiX


мы решили переключиться с VS integrated setup на WiX.

однако в настоящее время мы используем выходные файлы проектов в качестве входных данных для проекта установки. Это позволяет нам легко добавлять файлы приложений в каталог (для изображений, образцов и других ресурсов...) и эти файлы автоматически добавляются в программу установки при сборке.

Я не смог найти аналогичную функцию в WiX. Кажется, что WiX требует одной записи каталога и одной записи файла для каждого каталог и файл. Это потребует от нас менять источник WiX каждый раз, когда добавляется файл, который, на мой взгляд, является запретительным, поскольку у нас их так много.

есть ли какой-либо интегрированный способ сделать это с WiX или мне нужно написать свою собственную задачу, которая создаст источник WiX перед вызовом candle?

5 52

5 ответов:

для WiX 2.0, сало очень ограничено; парафин и мальва предлагают дополнительную функциональность. Для WiX 3.0 heat предлагает ту же функциональность, что и tallow, немного лучше.

в моем случае я использовал источник мальвы и немного изменил и использовал его, потому что парафину нужна версия 3.5. Net.

можно использовать мальвы

или парафиновый инструмент для создания фрагментов WiX: начало работы, боль Викса, A лучше сало, парафин, скачать, парафин для WiX 3.0

Я использую тепло.exe в WIX 3.5 только для этой цели. Последний раз, когда я проверял, хотя,документация не был обновлен с выпуском 3.5, поэтому имейте это в виду.

вот пример:

" $ (WIX)bin\heat.ехе" реж "$(SourcePath) " - CG MyFiles -gg-scom -sreg-sfrag-dr INSTALLDIR-out "$(ProjectDir)Fragments\FileFragment.wxs" - ВАР Викс.InstallerPath

проект MapGuide с открытым исходным кодом в настоящее время использует John Robbins' парафиновые 3.0 Как уже отметили.

в принципе, в первый раз для данной версии выпуска мы запустим наш сценарий установки с помощью "создать" действие, которое создает новый .файлы wxs для исходной папки с определенными параметрами для каждого из них.

на последующих сборках той же версии,"regen " действие вызывается для обеспечения этого .wxs файлы обновляются с любыми новыми файлами / каталогами, которые были добавлены.

Я считаю, что Heat v3 также теперь позволяет вам делать много (или, может быть, все?) из этого, как Брайан Роджерс, пишет . Я все еще чувствую себя более комфортно с тем, как парафин делает это более явно, поддерживая статические GUID, но текущее тепло выглядит как хороший вариант.

после дальнейших исследований, кажется, есть включенный двоичный файл под названием САЛО.exe, который делает именно это. Он создает фрагмент из каталога путем рекурсивного поиска файлов.

в моем использовании WIX, я никогда не сталкивался с функцией, которая позволяет добавлять целый каталог файлов одновременно. Это связано с тем, что существует много способов использования данного файла (система не знает, захотите ли вы позже ссылаться на конкретный файл в этой папке и т. д... и он должен их знать), а также потому, что сама установка должна быть довольно конкретной.

Это не мешает вам писать свой собственный интерфейс для WIX, который будет генерировать файл Wix XML (или части из него) после разбора содержимого структур каталогов. Это в основном то, что делает одна из систем, которые мы используем в моей работе. Это та же идея, что и любая утилита для генерации кода или текстовых файлов. Просто пройдите через дерево и сгенерируйте соответствующий текст.

EDIT: таким образом, вы можете считать WIX "языком низкого уровня" для определения настройки, а вашу утилиту-"языком высокого уровня". Если вам нужна помощь в написании одного, дайте нам знать.

кроме того, вы можете создайте файл WIX как часть процесса сборки, добавив эту утилиту к пользовательским шагам сборки в VStudio. Таким образом, у вас на самом деле нет "сохраненного файла WIX", который кто-либо строит, система просто строит его в конце, автоматически принимая во внимание новые файлы на этапе после сборки.