Comments 6
Почему NSIS не попал в список?
Долго работал с InstallShield (MSI/InstallScript Projects), и чем дольше, тем больше мне казалось, что это вообще не то, что нужно обычным людям. Если не нужны какие-то специфические фичи, используйте простые инсталяторы, типа Inno Setup, NSIS.
MSI установщики вообще нельзя запустить одновременно, такой дизайн, неважно каким инструментом вы его создали. В MSI достаточно много нюансов и вряд ли вы захотите узнать их все.
MSI установщики вообще нельзя запустить одновременно, такой дизайн, неважно каким инструментом вы его создали. В MSI достаточно много нюансов и вряд ли вы захотите узнать их все.
Согласен, Inno Setup мне кажется удобным и очень гибким.
Такие вещи, как ReportViewer, нужно ставить через Bootstrapper (MS ClickOnce bootstrapper или новый Wix Burn). Они позволяют отслеживать зависимости и устанавливать все по очереди, например сначала .NET, потом SqlServerClrTypes, потом ReportViewer. Каждая MSI продукта должна устанавливать только этот продукт и ничего больше. Как вариант, иногда можно использовать Merge модули, если они есть готовые (как например VC Runtime).
Что касается установки Postgres-a, то у вас тут все очень упрощено. Как вы обрабатываете Rollback установки? А если это не установка, а обновление или удаление, и пользователь нажал Cancel? А при удалении, Postgres тоже удалится? А база? На все эти случаи в Wix есть CustomActions, которые должны срабатывать по условию. Правильно определить условия — задача нетривиальная, т.к. кроме разных сценариев установки (Install/Remove/Modify/Repair), есть еще подвиды commit и rollback на каждый CustomAction, выполняемый во время InstallExecute последовательности. Короче, что я хочу сказать — Wix# создает обманчивое впечатление, что создать установщик это просто. На самом деле, если хочется простоты, нужно использовать продукты с ограниченным функционалом, типа NSIS, а если простоты мало, тогда инвестировать время в изучение Wix/MSI. Остальные варианты не способны дать качественный результат.
Что касается установки Postgres-a, то у вас тут все очень упрощено. Как вы обрабатываете Rollback установки? А если это не установка, а обновление или удаление, и пользователь нажал Cancel? А при удалении, Postgres тоже удалится? А база? На все эти случаи в Wix есть CustomActions, которые должны срабатывать по условию. Правильно определить условия — задача нетривиальная, т.к. кроме разных сценариев установки (Install/Remove/Modify/Repair), есть еще подвиды commit и rollback на каждый CustomAction, выполняемый во время InstallExecute последовательности. Короче, что я хочу сказать — Wix# создает обманчивое впечатление, что создать установщик это просто. На самом деле, если хочется простоты, нужно использовать продукты с ограниченным функционалом, типа NSIS, а если простоты мало, тогда инвестировать время в изучение Wix/MSI. Остальные варианты не способны дать качественный результат.
У меня такой вопрос, а почему у меня в конечном итоге git clone выдал ошибку скачивания проекта?
Sign up to leave a comment.
Автоматическая установка и настройка PostgreSQL при помощи Wix#