Передача пути установки в качестве входных данных для dll - базовый MSI - InstallShield 2012

Передача пути установки, выбранного в диалоговом окне целевой папки, в качестве входных данных в DLL из настраиваемого диалогового окна.

Я разрабатываю базовый проект установщика MSI с помощью InstallShield 2012. Я разработал настраиваемый диалог для получения информации для входа пользователя и т. Д. В настраиваемом диалоговом окне, и он передает данные в DLL, которая затем соответственно создает базу данных. Однако мне нужно знать, как передать путь установки [выбранный в диалоговом окне целевой папки] в качестве входных данных для dll, чтобы моя БД создавалась внутри соответствующих папок. Действие моей DLL выполняется после установки файлов.

Заранее спасибо !! Я с радостью объясню, если вы не можете понять сказанное выше ..


person Arun    schedule 06.10.2012    source источник


Ответы (1)


Вы не можете передавать значения в DLL напрямую, как в командной строке.

Вы должны сохранить значения, введенные пользователем, в свойстве, тогда ваше настраиваемое действие DLL будет использовать _ 1_, чтобы получить эти свойства из сеанса MSI.

Если ваше настраиваемое действие необходимо запустить с повышенными правами на этапе фиксации установщика, вам придется упаковать оба значения в свойство CustomActionData. См. Получение контекстной информации для настраиваемых действий отложенного выполнения для получения дополнительной информации.

person Alexey Ivanov    schedule 08.10.2012
comment
Я попытался вызвать функцию dll с параметром INSTALLDIR из моего настраиваемого диалогового окна, и я смог получить путь установки в НЕМЕДЛЕННОМ ВЫПОЛНЕНИИ, но вы хотите сказать, что это не сработает, когда я попытаюсь отложить выполнение ?? - person Arun; 08.10.2012
comment
Да, для отложенного исполнения это не сработает. В этом случае в последовательности выполнения вы должны установить свойство MyCustomActionName, а в своей функции вы получите его под именем CustomActionData; здесь MyCustomActionName - имя отложенного настраиваемого действия. То есть вы устанавливаете свойство с тем же именем, что и настраиваемое действие. И только одно свойство может быть передано отложенным настраиваемым действиям. - person Alexey Ivanov; 08.10.2012
comment
Мне нужно передать десять полей, включая каталог установки, в dll, чтобы он мог создать базу данных, есть ли способ обойти это? - person Arun; 09.10.2012
comment
[ссылка] helpnet.flexerasoftware.com/installshield19helplib/helplibrary/. Использование CustomActionData для доступа к более чем одному свойству ... Это должно работать правильно ?? - person Arun; 09.10.2012
comment
Да, сработает. Однако вы должны знать, что символ ';' сам становится недопустимым символом для значения любого из переданных вами свойств, потому что теперь он имеет особое значение. - person Alexey Ivanov; 09.10.2012