Я использовал InstallShield LE в Visual Studio 2010, но он сильно ограничен и иногда глючит.Я посмотрел на платные версии InstallShield, но они также имеют слишком много ограничений для этого ценника.
Поэтому я решил перейти на WiX.У меня был некоторый опыт с этим несколько лет назад.Было довольно легко создать простой установщик с помощью SharpDevelop с инструментами WiX.
Сейчас я пытаюсь собрать решения и инструменты для WiX.По сути, мне нужно получить следующие функциональные возможности (запрошенные моим клиентом):
, когда я запускаю установщик, он должен проверить текстовый файл на сервере и посмотреть, является ли более новая версияимеется в наличии.Если это так, то установщик должен иметь возможность загрузить обновленный установочный пакет и запустить его (есть ли в WiX утилиты загрузчика?)
для решения зависимостей.Основная зависимость моего приложения - .NET 4 (которая зависит от установщика Windows 3).Установщик должен предложить пользователю загрузить и установить их автоматически
регистрация процесса установки, а также сбор файла журнала процесса установки зависимостей.Я не хочу, чтобы пользователь охотился за различными файлами .log в случае сбоя установки .NET4 или WindowsInstaller3.Вся информация должна быть собрана в одном месте, и если что-то не получается, я должен показать пользователю настраиваемое всплывающее диалоговое окно с возможностью сохранить полный файл журнала установки и отправить его мне
Установщик должен быть в состоянии определить, установлена ли уже более новая версия моего приложения, и показать значимое настраиваемое сообщение об ошибке, прежде чем оно выйдет
. Установщик должен определить, есть листарая версия моего приложения уже установлена.и предложить пользователю выйти из установки или удалить предыдущую версию и установить новую версию.Кстати, незначительных обновлений компонентов не планируется, я предпочитаю переустанавливать все заново (я думаю, это серьезное обновление с точки зрения WindowsInstaller).У меня не получилось установить Installshield LE, он просто отображал окно с сообщением о другом продукте, но не предлагал удалить его
в случае обновления, установщик должен иметь возможностьчтобы определить, используются ли некоторые компоненты приложения (запущены процессы приложения), и показать собственное сообщение об ошибке, а не просто какое-то загадочное сообщение «Ошибка установки»
Я прочитал, что это может бытьНемного больно управлять обновлениями, даже если я сохраняю свой UpgradeCode без изменений, поскольку этот код хранится в реестре Windows в сжатом виде, а также, если пользователь переименовывает загруженный файл, он может быть обнаружен WindowsInstaller как совершенно новый продукт ...или, может быть, это только в случае MSI-файлов WindowsInstaller, и у WiX есть какой-то прием, чтобы избежать этой проблемы?
О загрузке обновлений - эта функция мне нужна и в самом приложении.Я не уверен, как реализовать это эффективно, поэтому я могу повторно использовать один и тот же код / утилиту загрузчика обновлений как в установщике WiX, так и в моем приложении.
Можно ли удовлетворить все эти требования, используя существующие в настоящее времяИнструменты WiX или, может быть, мне понадобится кодировать некоторые компоненты с нуля?