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

Как я могу исключить сбор файлов с помощью тепла (WiX 3.5)?

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

http://www.mail-archive.com/[email protected]/msg03420.html

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

Ответ 3

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

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

У меня он установлен для запуска действия урожая условно, только для отладочных сборников. Релиз сборки генерируются с нашего сервера TFS и используют сгенерированные .wxs из исходного управления. Должно быть хорошо, чтобы запустить сборку на сервере сборки, но это дополнительный шаг и отсутствие его выполнения исключает проблему "без детерминированного процесса", описанную Christopher Painter. Помимо этого шага, эти же шаги выполняются на сервере сборки, как и на моей машине dev.