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

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

кроме того, я обнаружил, что документация WiX довольно разрежена. Поэтому я наткнулся на Wix# (WixSharp), который обещает создать исходный код WiX программно через файлы сценариев, написанные на C#.

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

2 ответов


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

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

в июле 2014 Wix# был переиздан под более либеральной лицензией MIT, и теперь он размещен на CodePlex. https://wixsharp.codeplex.com/

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

тот факт, что новые функции Wix# выходят, хорошо говорит о продукте.

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

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

WiX/ Wix # Pros:

  • он генерирует реальные файлы MSI установщика Windows.
  • на удалить функция "свободный"; вы автоматически получаете надежный деинсталлятор.
  • администраторы сервера в моей среде легко принимают файлы MSI для вещей, которые я как разработчик хочу установить, потому что они доверяют технологии MSI и функции удаления.
    • записи реестра Windows включены в" бесплатную " деинсталляцию, которую вы получаете, Если вы создаете их с помощью синтаксиса WIX или Wix# native и не сливаетесь .reg файлы, вы не получите запись в реестр удалить таким образом.

WiX / Wix# Минусы

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

Плюсы Уикс

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

Викс Минусы

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

Wix# Pros

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

Wix# Cons

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

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

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

последние обновления продукта Wix# для общих задач установки

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

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

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

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