2016-02-18 5 views
0

Я создаю установщик загрузчика с пользовательским интерфейсом. У него есть некоторые предварительные условия, которые необходимо проверить перед установкой и если что-то не хватает - покажите его в пользовательском интерфейсе.Каков наилучший способ проверки наличия необходимых компонентов.

У меня 2 possibilites:

  • проверить его в XML моей загрузчике с утилитами как RigustrySearch
  • Проверьте это в UI и установить некоторые переменные в загрузчике
  • Есть пользовательское расширение и вызывать его из XML

Каков наилучший подход здесь?

Доводы за то, что его в XML:

  • Native способ сделать это

Доводы за то, что его в UI части:

  • Я мог бы организовать код красивым и чистым
  • У меня может быть отдельная Dll для проверки предпосылок или даже пакета nuget
  • У меня есть намного больше гибкости, и это более просто сделать сложные утверждения
  • я могу иметь дополнительную информацию для каждого необходимого условия, как лицензии информации и удобной для пользователя имя

Доводы за то, что пользовательское расширение:

  • не нужно возиться с переменными в XML

лично я больше склоняюсь к второму варианту, как вариант, один собирается сделать мой XML объятие e и более трудно читать, если у меня есть много предпосылок. Вариант 3 приятный, но сложнее показать удобное имя для предварительного условия и информации о лицензии в пользовательском интерфейсе. Ребята, что вы думаете?

ответ

2

Я думаю, что это действительно зависит от ваших предпосылок и того, как вы намерены обрабатывать свое присутствие/отсутствие. Вот мои личные предпочтения.

Как правило, если я собираюсь работать с управляемым загрузочным приложением, у меня будет это, чтобы обнаружить prereqs, если мне тогда понадобится некоторый ввод от пользователя, т.е. каталог установки, учетные данные и т. д. Затем я передаю некоторые значения из управляемого приложения, в переменные ожога и, в свою очередь, в свойства Wix для отдельных сообщений msi. Это мой самый использованный подход.

Если все ваши предпосылки являются частью вашего пакета в любом случае, и вам не требуется никакого взаимодействия с пользователем, я стараюсь идти вперед, как если бы я устанавливал каждый пакет, и сами пакеты отвечают за обработку их собственное обновление/установка не требуется. то есть. связывание .Net или сторонних инсталляторов с вашим приложением.

Я стараюсь избегать специальных действий для такого рода работ, я нахожу их немного громоздкими при попытке справиться со всеми успешными/неудачными путями установки/обновления/восстановления/удаления и т. Д.

Я думаю, что это немного субъективно для вашего конкретного случая использования, и нет ни одного наилучшего подхода для всех ситуаций.

+0

Соглашаясь с «идти вперед, как будто я устанавливаю каждый пакет, и сами пакеты несут ответственность за обработку собственного обновления/установки, не требуемое поведение». Если они не имеют полной и точной документации, только они сами могут справиться с обнаружением условий. –

+0

Да, я должен уточнить, что я не делаю ничего в загрузочном/управляемом BA, который относится к сторонним установщикам, только для моих собственных. –

Смежные вопросы