Опыт работы с Wix # WixSharp по сравнению с WiX

Мы используем Inno Setup и планируем заменить это на WiX. Но при оценке и игре с WiX я чувствовал, что декларативная манера имеет некоторые ограничения по сравнению с программными решениями для настройки.

Кроме того, я узнал, что документация WiX довольно скудная. Поэтому я столкнулся с Wix # (WixSharp), который promises создает программный код WiX через файлы script, написанные на С#.

Однако у нас были некоторые негативные переживания с очень маленькими компаниями и даже с "одним человеком". Поэтому я просто хотел спросить о вашем опыте с Wix # (WixSharp) или даже другими хорошими альтернативами там. Можете ли вы сообщить о некоторых преимуществах или ограничениях?

Ответ 1

Wix # выглядит как хорошая ставка на оценку "Будет ли это в следующем году"? Смотри ниже. И обратите внимание, что пользовательские действия теперь довольно просты в построении в Wix #.

Из этой статьи: http://www.codeproject.com/Articles/31407/Wix-WixSharp-managed-interface-for-WiX

В июле 2014 года Wix # был переименован в более либеральную лицензию MIT, и теперь она находится на CodePlex. https://wixsharp.codeplex.com/

В августе 2014 г. в этой статье CodeProject были выпущены и описаны расширения UI для Wix #: "Расширения пользовательского интерфейса Wix # (WixSharp)".
http://www.codeproject.com/Articles/804584/Wixsharp-WixSharp-UI-Extensions

Тот факт, что новые функции Wix # выходят, служит хорошим предзнаменованием для продукта.

Так как Wix # построен поверх технологии WiX и Windows Installer, он может делать только то, что возможно в WiX. Когда у Wix # заканчивается газ... WiX может делать много вещей, которые напрямую не доступны в синтаксисе Wix # С#, поэтому вы можете обычно использовать технологию WiX XML напрямую, чтобы преодолеть разрыв. Также см. Мой ответ здесь для дополнительных примеров того, как Wix # генерирует XML файл .wxs, а затем включает в себя дополнительный код WiX XML и вызов Candle и Light для создания полученного объединенного XML в MSI. Программное построение MSI

Ниже приведен быстрый, неисчерпывающий список WiX и Wix # плюсов и минусов, которые я испытал до сих пор.

WiX/Wix # Плюсы:

  • Он генерирует реальные файлы MSI для Windows Installer.
  • Функция удаления является "свободной"; вы автоматически получаете надежный деинсталлятор.
  • Администраторы сервера в моей среде легко принимают файлы MSI для вещей, которые я как разработчик хочу установить, потому что они доверяют технологии MSI и функции удаления.
    • Записи реестра Windows включены в "бесплатную" деинсталляцию, если вы их создаете с использованием встроенного синтаксиса WiX или Wix # и не объединяете файлы .reg. Вы не сможете удалить запись реестра, которая путь.

WiX/Wix # Cons

  • Поскольку он ограничен набором функций установщика Windows, некоторые "процедурные" вещи сложнее делать в WiX и Wix #

WiX Pros

  • В Интернете доступно множество замечательных примеров и ресурсов поддержки ( "Как я.. в WiX" ).
  • Утилиты для сбора записей в реестре и ввода XML-операторов WiX работают хорошо.

WiX Cons

  • Как разработчик С#, я нашел WiX XML неинтуитивным для начала работы с, непосредственно работая с файлами XML. Wix # и С# сделали больше смысла чем WiX в начале.

Wix # Pros

  • Пользовательские действия теперь просто реализовать в Wix #.
  • Wix # аккуратно интегрируется с Visual Studio. В настоящее время я использую его с VS2013.
  • Wix # и С# имели больше смысла, чем WiX XML в начале. Лучшая отправная точка.
  • Wix # помогает мне узнать WiX более доступным способом. Увидеть, что делает и не работает в Wix #, помогает понять WiX.

Wix # Cons

  • Примеры Wix # в настоящее время намного сложнее найти в Интернете. Часто необходимо изучить руководство WiX, а затем выяснить, как применить его к Wix #.
  • Я не нашел автоматизированного пути для сбора записей в реестре и выражения в коде WiX # С#. Я перевел записи файла .reg вручную. Нужно иметь записи реестра в операциях Wix # "RegValue (" ), чтобы получить возможность автоматического удаления для записей реестра. Примечание. Разработчик добавил эту функцию в выпуске в январе 2015 года. Я еще не пробовал.

Я скажу, что делать что-то в WiX/Wix #, которые были просты и очевидны в процедурных установщиках, таких как NSIS, и прошлых поколениях установщиков script (например, более старые версии Wise) часто требуют дополнительных исследований и творчества в WiX/Wix #.

В целом, я ставлю на Wix # как технологию роста и безопасную ставку для текущего и будущего использования. В худшем случае у вас все еще есть ваши .wxs файлы и может перейти к использованию прямого подхода WiX XML к установщикам установки, и вы все равно получите выгоду от инвестиций времени Wix #.

ПОСЛЕДНИЕ ОБНОВЛЕНИЯ В Wix # Продукт для общих задач установщика

По состоянию на январь 2015 года. Смотрите: [https://wixsharp.codeplex.com/releases/view/610843][1]

  • Теперь можно импортировать файл настроек реестра .reg вместо записей класса реестра для кодирования кода.
  • Дополнительная поддержка изменений файлов Windows Config
  • Конкретная поддержка установок Windows Service
  • Поддержка передачи значений параметров в отложенные пользовательские действия, при этом вся инфраструктура поддержки WiX должным образом автогенерируется
  • Поддержка абсолютного пути в целевом системном каталоге, при этом вся инфраструктура поддержки WiX должным образом автогенерируется

Ответ 2

WiX существует довольно долгое время и имеет большую поддержку сообщества. Я занимаюсь настройкой (в свободное время:)) около 8 лет и никогда не нашел ничего, что я мог бы не разумно сделать в WiX.

Это первый раз, когда я видел WixSharp. Моя первая реакция будет заключаться в том, насколько стабильной она дается 0.1.42 на данный момент. Я также был бы обеспокоен тем, какая часть схемы MSI фактически реализована в WixSharp. Это выглядит интересно, но мне было бы лучше с XML файлом. Я действительно не вижу никакого преимущества для этого в С#.