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

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

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

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

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

5 ответов


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

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

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

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


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

вот пример:

" $(WIX)bin\heat.exe " dir "$(SourcePath) " - CG MyFiles -gg-scom -sreg-sfrag-dr INSTALLDIR-out "$(ProjectDir)фрагменты\фрагменты файлов.wxs" - ВАР Викс.InstallerPath


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

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

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

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


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


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

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

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

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