Создавать файлы разработки WIX, содержащие несколько файлов в одном компоненте.

Мы используем исполняемый файл heat для создания файла разработки, в котором для каждого файла создается уникальный компонент. Есть ли способ включить несколько файлов в один компонент.

Ожидаемый результат:

<component Id="samplecomponent"  Directory="INSTALLFOLDER" Guid="*">
   <File Id="file1.txt" Source="$(var.Sourcedir)\file1.xml" />
   <File Id="file2.txt" Source="$(var.Sourcedir)\file2.xml" />
   <File Id="file3.txt" Source="$(var.Sourcedir)\file3.xml" />
</Component>

person Santhosh    schedule 16.10.2018    source источник
comment
Я не думаю, что heat.exe может это сделать - по крайней мере, не в версии 3.11. Однако существует инструмент Парафин. Может быть, быстро прочитал.   -  person Stein Åsmul    schedule 16.10.2018
comment
@ SteinÅsmul Еще раз спасибо. Paraffin устарел за возможность иметь несколько файлов для каждого компонента. wintellect.com/zen-of-paraffin   -  person Santhosh    schedule 17.10.2018
comment
О, я не знал. Спасибо за обновления. Я всегда предпочитал один файл для каждого компонента - это позволяет избежать всех видов проблем (для patching, upgrades, self-repair, etc...): Изменить GUID моего компонента в wix?.   -  person Stein Åsmul    schedule 17.10.2018
comment
О, вы тот парень с этим массивным пакетом, поэтому вы хотите использовать несколько файлов для каждого компонента по соображениям производительности (несколько скоростей советы по оптимизации в этой ссылке, но ни один из них не оказал большого влияния. У меня закончились идеи, извините). Я честно думаю, что вам нужно исследовать разделение пакета на несколько файлов MSI :-( и использовать Burn в качестве загрузчика - или проверить, находится ли код все еще в Paraffin, чтобы создавать несколько файлов для каждого компонента, чтобы вы могли просто включить его для своей собственной сборки? Нередко использование пакета, отличного от MSI, для крупных развертываний.   -  person Stein Åsmul    schedule 17.10.2018
comment
Привет, @ SteinÅsmul. Да, это я все еще думаю о том, как улучшить производительность. Наш дизайн msi таков, что мы не поддерживаем обновления и исправления. Проблема с разделением пакетов на более мелкие MSI заключается в том, что у нас есть много настраиваемых диалоговых окон пользовательского интерфейса в текущей настройке, воссоздание этих диалогов с помощью пользовательского интерфейса загрузочного загрузчика невозможно.   -  person Santhosh    schedule 17.10.2018
comment
Мы проверим исходный код Paraffin, чтобы узнать, доступна ли эта функция, но, тем не менее, Paraffin публикует, что эта функция доступна в версии 3.13, но ссылка на версию 3.13, похоже, не работает. wintellect.com/devcenter/media/Default/ Блоги / Файлы / sample_files / Мое плохое.   -  person Santhosh    schedule 17.10.2018
comment
Может быть, попробовать выпуск 3.7.0 прямо с github? (внизу, прямая ссылка). И вы также можете - если осмелитесь - загрузить через обратную машину: Paraffin 3.131. Вроде нормально, передает virustotal.com. Не рекомендуется, так как автор устарел.   -  person Stein Åsmul    schedule 17.10.2018
comment
@ SteinÅsmul Спасибо. Версия Paraffin 3.131 работает. Это помогает создать единый компонент с несколькими файлами.   -  person Santhosh    schedule 22.10.2018
comment
Как вы прочитали в других ссылках выше - предварительный компонент с несколькими файлами обычно затрудняет использование мелких обновлений и исправлений, но вам это может не понадобиться? Хорошее тестирование в порядке. Очень часто вас просят обновить несколько файлов, и тогда очень нежелательно использовать крупные обновления и удалять / переустанавливать весь продукт вместо небольшого обновления. Все зависит от того, что вас просят предоставить, и от того, насколько стабильна версия.   -  person Stein Åsmul    schedule 22.10.2018
comment
Я добавил ответ ниже, чтобы подвести итог другим людям, столкнувшимся с той же проблемой. Удачи в таком подходе. Это может работать, но очень вероятны побочные эффекты при обновлении.   -  person Stein Åsmul    schedule 22.10.2018
comment
Спасибо @ SteinÅsmul. Обновления не являются проблемой, поскольку мы не поддерживаем обновления.   -  person Santhosh    schedule 22.10.2018


Ответы (1)


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

Следует отметить, что эта функция, вероятно, устарела из Paraffin по уважительной причине (и никогда не встречалась в собственном heat.exe WiX, насколько мне известно), поскольку она имеет тенденцию делать незначительные обновления и исправления почти невозможными для использования. Это связано с общей сложностью MSI - особенно в том, что касается обновлений. Могут быть и другие причины, по которым Paraffin не поддерживает эту функцию, например, ее слишком сложно поддерживать. Я не знаю.

Я всегда предпочитаю один файл для каждого компонента - это позволяет избежать всех видов проблем (для patching, upgrades, self-repair, etc...). Вот некоторые технические подробности: Изменить GUID моего компонента в wix?

Однако Santhosh имеет проблемы с пакетом, который настолько велик, что его установка выполняется слишком медленно, даже после применения ряда уловок для увеличения скорости. это вверх (limit costing, use admin image и т.д ... - см. ссылку). В таких случаях я предпочитаю разделить пакет на несколько файлов MSI и последовательно установить их с помощью загрузчика - например, с помощью загрузчика WiX Burn. Конечно, это не всегда приемлемо. Иногда решающее значение имеет один MSI.

person Stein Åsmul    schedule 22.10.2018