Установка нескольких каталогов
обзор
В настоящее время мы используем installsheild 2012 для создания базового пакета MSI для доставки нашего программного обеспечения клиентам.
Я - самоучка с installsheild, поэтому сомневаюсь, что буду следовать рекомендациям, которые, тем не менее, у меня есть разумное понимание пользовательских действий, installscript и диалоговых окон. Я немного не уверен в редакторе каталогов и менеджере свойств, поэтому, если они необходимы, пожалуйста, идите медленно.
Во время установки пользователь запросил, чтобы он мог установить одну из наших папок на другой диск в своей системе, так как он заполнен информацией журнала и потенциально может быть довольно большим. Таким образом, эта папка должна быть установлена вне INSTALLDIR.
цель
Я хочу создать диалоговое окно, которое позволит пользователю выбрать место установки для этой папки во время установки.
Этот процесс должен выполняться через пользовательский интерфейс, поскольку он должен быть достаточно гибким, поскольку содержимое папки журналов может меняться от клиента к клиенту.
Поэтому в идеале я хотел бы, чтобы папка была видна в приложении data\ files and folder \Destination Computer, в разделе интерфейса, который позволил бы любому, кто придет, поддержать проект после меня, просто перетащив туда папки.
Хотя управление папками должно осуществляться через пользовательский интерфейс, процесс, лежащий в основе этого, то есть выбор папки, а затем копирование файлов, может быть достигнут любым способом, если у меня есть несколько указателей, которые могут мне помочь.
Что я пробовал
1.Installscript & Custom Action. Я написал пользовательское действие для использования AskPath, в котором указывалось место, где пользователь решил установить папку Log, а затем создавался каталог. Я бы жестко запрограммировал содержимое папки журнала в installscript (однако, поскольку структура папок может измениться, этот подход стал слишком сложным для обслуживания)
2.Компоненты и функции. Я пытался использовать папку журнала в качестве отдельной функции и иметь свой собственный компонент, но не смог перенести свойство из диалогового окна и связать компонент с диалоговым окном, в котором можно было бы выбрать место для установки. папка журнала.
3.Предварительные условия - я посмотрел в Интернете и обнаружил, что могу установить папку журнала через менеджер предварительных требований, заархивировав папку журнала в самораспаковывающийся Zip (мне пока не повезло, и Я надеюсь, что есть более чистый путь)
Я думаю, что я, возможно, приблизился в некоторых из моих попыток сделать то, что я хотел, но я продолжал попадать в тупики.
Любая помощь будет принята с благодарностью и спасибо за чтение, я знаю, что это длинный пост.
Каустон
1 ответ
Просто сделай это:
Создайте две директории в вашем установщике:
INSTALLDIR = [ProgramFilesFolder] Company \ Product LOGDIR = [INSTALLDIR] Журналы
Затем взгляните на диалоговое окно "Папка назначения". Клонировать все элементы управления, которые делают различные значки, текст и кнопку обзора для INSTALLDIR.
Измените отображаемый текст с [INSTALLDIR] на [LOGDIR]. Затем скопируйте управляющие события на кнопку "Обзор" и измените значение [_BrowseProperty] на LOGDIR вместо INSTALLDIR.
Вот и все. LOGDIR будет начинать с дочернего элемента INSTALLDIR, но если пользователь нажимает кнопку Browse и изменяет ее, то эта связь нарушается. Затем вы можете изменить INSTALLDIR, и он не изменит LOGDIR.