Как я могу исключить файлы из-за жары (WiX 3.5)?

Я хотел бы собрать папку с большим количеством файлов с помощью heat.exe. Но вместо того, чтобы собирать все файлы, я бы хотел исключить определенные расширения файлов, такие как "*.txt" или что-то в этом роде. Как я могу это сделать?

3 ответа

Я думаю, что пока единственный вариант - собрать всю папку и применить преобразование к результирующему файлу.wxs (см. -t:<xsl> переключатель), чтобы исключить то, что не требуется (TXT-файлы в вашем случае). Тем не менее, я не пробовал версию Heat 3.5 (судя по версии 3.0), но я не думаю, что есть изменения в этой области.

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

Раньше я делал динамические ссылки на файлы в 1990-х, потому что это было "легко", но я помню, что это кусало меня много раз, и с тех пор я этого не делал.

Я знаю, что Боб Арнсон был согласен с этой точкой зрения:

http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg03420.html

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

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

  1. Удалить "файлы", если он существует
  2. Создайте папку "файлы"
  3. Скопируйте файлы в папку "файлы". Я использую действие сборки robocopy, которое дает мне достаточный контроль, чтобы указать, какие файлы включать или исключать.
  4. Соберите всю папку.

Он настроен на условное выполнение сбора урожая, только для отладочных сборок. Сборки релизов генерируются с нашего TFS-сервера и используют сгенерированные.wxs из системы контроля версий. Все должно быть в порядке, чтобы запустить сборку на сервере сборки, но это дополнительный шаг, и отсутствие его запуска устраняет проблему "недетерминированного процесса", описанную Кристофером Пейнтером. Кроме этого одного шага, на сервере сборки выполняются те же шаги, что и на моем компьютере разработчика.

Другие вопросы по тегам