2016-11-30 3 views
1

Я пытаюсь создать установщик с Inno Setup, который запускает другие установщики на основе некоторых параметров конфигурации. Для простоты предположим, что у меня есть 20 инсталляторов, которые можно настроить в 5 различных конфигурациях, где каждая конфигурация имеет некоторые необходимые и некоторые дополнительные установщики. Конфигурация A может потребовать установки 1, 2, 5, 6 и иметь опции для 11, 13 и 14. Для конфигурации B может потребоваться 1, 2, 3, 9 и иметь опции для 12, 19 и 20. И так далее ,Компоненты установки Hiding Inno

У меня есть компонент для каждого установщика. В идеале я бы хотел использовать типы для конфигураций, но я не мог понять, как сделать некоторые компоненты необходимыми, если у вас есть другие (если это возможно, скажите, пожалуйста). Итак, в настоящее время у меня есть только «пользовательский» тип и используйте специальную страницу мастера, которая позволяет вам указать конфигурацию. Основываясь на выборе, я использую код для проверки и отключения (поэтому они не могут быть отменены) требуемых Компонентов, при этом все же можно выбрать дополнительные компоненты.

В целом, он работает очень хорошо, но я надеялся отображать только компоненты, которые применимы для выбранной конфигурации. Поэтому, используя приведенный выше пример, для конфигурации A на странице «Компоненты» будут отображаться 1, 2, 5, 6 флажки и отключены, а 11, 13 и 14 отключены и включены. Можно ли оставить все компоненты определенными, но просто скрыть те, которые не применимы? Или, возможно, определить несколько страниц компонентов, но показывать только одну конфигурацию?

Я нашел this решение в Интернете, но так как пользователь мог бы нажать кнопку «Назад», то понятие о том, что я могу удалить компоненты, но не добавлять их повторно, не похоже на хороший вариант.

ответ

0

Нет, список компонентов (ComponentsList) заполняется только один раз, когда начинается программа установки. Он не может быть изменен во время выполнения.

С такой сложной настройкой вам лучше отказаться от встроенных функций компонентов и создать собственную страницу «компонентов». Или вы можете сохранить встроенную страницу «Компоненты», просто скрыть список стандартных компонентов и создать свой собственный.

Создайте аналогичный макет, но заново создайте список «компонентов», когда изменяется «тип» установки.

Вы можете привязать записи Files, Registry и т. Д. К пользовательским компонентам, используя Check parameter. Или вы можете обновить список реальных скрытых компонентов на основе выбора в списке видимых пользовательских компонентов.

+0

Спасибо за ответ Martin. Чтобы убедиться, что я понятен, ваше предложение состоит в основном не определять стандартные компоненты, а создавать специальные страницы мастера, которые эмулируют страницу компонентов для каждой конфигурации. Затем используйте параметр «Проверить» в разделах «Файл/Выполнить», чтобы определить, какие установщики должны запускаться. Правильно ли я понимаю? – user7134019

+0

Мой ответ был несколько шире. Но да, это возможная реализация. –

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