Подтвердить что ты не робот

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

Мы решили переключиться с VS интегрированной настройки на WiX.

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

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

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

4b9b3361

Ответ 1

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

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

Вы можете использовать Mallow

или Парафиновый инструмент для генерации фрагментов WiX: Начало работы, Боль WiX, Лучшее сало, Парафин, Download, Парафин для WiX 3.0

Ответ 2

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

Вот пример:

"$ (WIX) bin\heat.exe" dir "$ (SourcePath)" -cg MyFiles -gg -scom -sreg -sfrag -dr INSTALLDIR -out "$ (ProjectDir) Фрагменты \FileFragment.wxs" -var wix.InstallerPath

Ответ 3

В проекте MapGuide Open Source в настоящее время используется , как указывали другие.

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

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

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

Ответ 4

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

Ответ 5

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

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

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

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