у Вас также есть четвертая альтернатива, что я думаю, было бы лучше, чем альтернативные 3:
haystack.find(needle, searcher)
я вижу Вашу точку, но что, если searcher
реализации ищущий интерфейс, который допускает поиск других типов объектов, чем стога сена и нахождения других вещей, чем иглы в них?
интерфейс мог также быть реализован с различными алгоритмами, например:
binary_searcher.find(needle, haystack)
vision_searcher.find(pitchfork, haystack)
brute_force_searcher.find(money, wallet)
, Но, как другие уже указали, я также думаю, что это только полезно, если у Вас на самом деле есть несколько алгоритмов поиска или несколько доступных для поиска или findable классов. В противном случае я соглашаюсь haystack.find(needle)
, лучше из-за его простоты, таким образом, я готов пожертвовать некоторой "правильностью" за него.
Для WiX v3 (и бесплатного решения) посмотрите heat.exe. Если у вас более сложные задачи по сбору урожая, есть коммерческий вариант от FireGiant **.
** Отказ от ответственности: я доброжелательный диктатор WiX Toolset и генеральный директор FireGiant . Мы вносим свой вклад в проект с открытым исходным кодом и предоставляем коммерческие решения по проекту. Выберите то, что вам больше всего подходит.
Для Wix 2 был инструмент под названием Mallow, который делал это. Это было бесплатное программное обеспечение, и я где-то нашел исходники. Эта функция также может быть доступна в Heat.exe на данный момент, но я не уверен.
Также кажется, что некоторые ребята из сообщества Wix экспериментируют с своего рода функцией автоматического сканирования, с помощью которой вы можете помещать файлы в предварительную версию. определенное расположение выпуска и новые файлы msi создаются постоянно - аля «непрерывная интеграция».
Вы хотите сделать это для большого количества пакетов или только для одного или нескольких? Сообщите мне объем, и я могу отправить вам код Mallow или найти ссылки на решения, ориентированные на "непрерывную интеграцию".
Вы можете использовать heat.exe, как уже сказал Роб (я думаю, он знает, так как он стоит за ним), или вы можете написать простой скрипт уборщика, который оценивает wix-скрипт как предварительный -компилировать действие wix-проекта. Для этого мы использовали vbscript, поскольку нагрев не подходил для наших проблем, из-за разных файлов, разных каталогов и т. Д.
В WixEdit есть функция импорта папки, которая может захватить все содержимое папки и превратить его в узлы Каталог / Компонент / Файл.
Если "Тепло" не удовлетворяет вашим потребностям, вы можете посмотреть Парафин Джона Роббинса.