Настройте проект с управляемыми настраиваемыми действиями. Большая головная боль

Я пытаюсь создать проект установки, и я не могу поверить, насколько болезненным это может быть. Ни один из инструментов, которые я пытался использовать, меня не удовлетворил. Почему? Что ж, посмотрим:

Первый и самый простой вариант: проект установки, созданный в Visual Studio. Легко и быстро. вы можете легко реализовать пользовательские действия, даже если ваш код написан на c# или vb.net. Именно то, что я хотел. Но у этого подхода есть некоторые недостатки, и главный из них — невероятно болезненный способ реализации пользовательских диалогов. Например, если мне нужно запросить учетные данные БД, авторизовать пользователя и продолжить установку. Но нет. В VS невозможно создать диалоговое окно пользовательской настройки. На самом деле есть способ, но он не простой. Я имею в виду что, ты шутишь? Я должен потратить день, чтобы создать пару простых диалогов?

Второй вариант: использовать какой-либо инструмент. Например, InstallShield. За это нужно платить, да, к счастью, это чертовски дешево. Всего 5500 долларов. Ничего страшного, верно? Ну может быть, но для меня это как "чувак, забудь об этом"

Третий вариант: используйте WIX Хорошо, есть много вариантов. Не так прост в использовании, как встроенный VS, но имеет гораздо лучшие функции. Единственная проблема - я трачу несколько часов, пытаясь убедить эту штуку запустить мой код, написанный на С#. Я провалил. Ничего не помогло и я сдаюсь.

В настоящее время. Пожалуйста, пожалуйста, мои коллеги-знатоки, все знающие разработчики. Помоги мне. Что я должен делать? Как лучше всего решить мою проблему (поверьте, мой босс меня убьет, он любит добиваться результата на трупах своих сотрудников).

Скажите, есть ли лучший способ редактировать файлы .wid. Использование инструмента Orca — непростое решение. Или покажите мне реальный пример проекта установки, созданного с помощью WIX, который может запускать управляемый код C#.

Благодарю вас!


person iLemming    schedule 02.07.2010    source источник
comment
Интересно, что не работало с управляемым ЦС в WiX? Вы пытались собрать и запустить образец из DTF.chm? Что вы потерпели неудачу и сдались?   -  person Yan Sklyarenko    schedule 03.07.2010
comment
Вы всегда можете предложить своему боссу связаться со мной для аутсорсинга. Вы получите дешевле, быстрее и надежнее от эксперта, а не от кого-то нового для установки, пытающейся нарастить мощность в первый раз.   -  person Christopher Painter    schedule 04.07.2010


Ответы (2)


Я реализовал пользовательский диалог, просто отобразив форму в своем пользовательском действии. Это просто сделать.

person Stefan Egli    schedule 02.07.2010
comment
Да, я тоже это сделал. но моему боссу это не понравилось. - person iLemming; 02.07.2010
comment
Что я могу сделать? Он босс. Он хочет видеть это как часть собственного диалога установки ;( - person iLemming; 02.07.2010
comment
Ну, я просто добавил некоторые беатификации в свою форму и вырезал все стандартные диалоги настройки. Надеюсь теперь моему боссу понравится эта штука... - person iLemming; 03.07.2010
comment
Может быть, ему это не понравилось, потому что это антипаттерн? - person Christopher Painter; 08.07.2010

Я не предлагаю использовать ни «Проекты установки» (также известные как «Проекты развертывания Visual Studio»), ни Управляемые настраиваемые действия (в вашем контексте вы имеете в виду настраиваемые действия InstalUtil).

Для управляемых настраиваемых действий я использую Windows Installer XML — DTF (Deployment Tools Framework). Это создает и упаковывает ваш ЦС так, чтобы он выглядел и воспринимался MSI как ЦС C++, что означает, что вы можете затем использовать его с помощью InstallShield, WiX, Wise и т. д.

Я также не предлагаю использовать CA в качестве поддельных диалогов. Если вам нужен более привлекательный пользовательский интерфейс, напишите внешний обработчик пользовательского интерфейса (непростая задача). Я подозреваю, что ваша настоящая проблема заключается в том, что VDRPOJ не очень хорошо раскрывает это, что WiX много пишет в XML. InstallShield предоставляет вам IDE с перетаскиванием для работы с пользовательскими диалогами. Но тогда это было бы одной из многих причин, по которым это не бесплатно.

person Christopher Painter    schedule 04.07.2010