Настройка проекта с управляемыми настраиваемыми действиями. Большая головная боль
Я пытаюсь создать проект установки, и я не могу поверить, насколько это может быть больно. Ни один из инструментов, которые я пытался использовать, не удовлетворил меня. Как так? Ну что ж, посмотрим:
Первый и самый простой вариант: установка проекта, встроенного в Visual Studio. Легко и быстро. Вы можете легко реализовать пользовательские действия, даже если ваш код был написан на C# или vb.net. Именно то, что я хотел. Но у этого подхода есть некоторые недостатки, и основным из них является невероятно болезненный способ реализации пользовательских диалогов. Например, если мне нужно запросить учетные данные БД, авторизуйте пользователя и продолжите установку. Но нет. В VS нет способа создать пользовательский диалог настройки. На самом деле есть способ, но он не легкий. Я имею в виду что, ты издеваешься надо мной? Я потратил день, чтобы создать пару простых диалогов?
Второй вариант: использовать какой-то инструмент. Как и InstallShield. Вы должны заплатить за это, да, к счастью, это чертовски дешево. Всего 5500 долларов. Ничего страшного, правда? Ну, может быть, но для меня это как "чувак, забудь об этом"
Третий вариант: использовать WIX Nice, есть много вариантов. Не так прост в использовании, как встроенная VS, но имеет много гораздо лучших функций. Единственная проблема - я провожу несколько часов, пытаясь убедить эту вещь запустить мой код, написанный на C#. Я провалил. Ничего не помогло и я сдаюсь.
Сейчас. Пожалуйста, пожалуйста, мои коллеги-эксперты, все знающие разработчики. Помоги мне. Что я должен делать? Как лучше всего решить мою проблему (поверьте мне, мой босс убьет меня, ему нравится добиваться результатов по сравнению с мертвыми телами своих сотрудников).
Подскажите есть ли лучший способ отредактировать.wid файлы. Использование инструмента Orca - непростое решение. Или покажите мне реальный пример проекта установки, созданного с помощью WIX, который может запускать управляемый код C#.
Спасибо!
2 ответа
Я реализовал пользовательский диалог, просто отобразив форму в своем пользовательском действии. Это простая вещь.
Я не предлагаю использовать ни "Setup Projects" (также называемые Visual Studio Deployment Projects), ни "Managed Custom Actions" (в вашем контексте вы имеете в виду настраиваемые действия InstalUtil).
Для управляемых настраиваемых действий я использую установщик Windows XML - DTF ( Deployment Tools Framework). Это создает и упаковывает ваш CA так, чтобы MSI выглядел и чувствовал себя как C++ CA, что означает, что вы можете использовать его с помощью InstallShield, WiX, Wise и так далее.
Я также не предлагаю использовать CA в качестве поддельных диалогов. Если вы хотите более интересный пользовательский интерфейс, напишите внешний обработчик пользовательского интерфейса (не простая задача). Я подозреваю, что ваша настоящая проблема заключается в том, что VDRPOJ не очень хорошо это демонстрирует, что WiX много пишет в XML. InstallShield предоставляет интегрированную среду разработки для работы с пользовательскими диалоговыми окнами. Но тогда это было бы одной из многих причин, почему это не бесплатно.