DTF и MsiGetProperty - PullRequest
       376

DTF и MsiGetProperty

1 голос
/ 13 января 2011

Относится к: Доступ к файлам поддержки InstallShield из DTF (управляемое настраиваемое действие)

Мне нужно прочитать свойство SUPPORTDIR . Согласно этому форуму (http://community.flexerasoftware.com/showthread.php?t=180742&page=3), мне нужно использовать MsiGetProperty.

Как я могу вызвать MsiGetProperty из DTF?

Ответы [ 2 ]

2 голосов
/ 13 января 2011

Класс сеанса DTF имеет метод:

публичная строка this [string property] get: set:

Это удалено к неуправляемой стороне C ++, где они вызывают MsiGetProperty и MsiSetProperty. Это похоже на VBScript Session.Property ("SUPPORTDIR"), только проще.

InstallShield должен был запланировать настраиваемое действие под названием ISSetupFilesExtract. Зарегистрируйте вашу установку и посмотрите, выполняется ли она и назначен ли путь к свойству.

Единственное, что я могу придумать, это то, что если вы пишите правильный UAC, чтобы не повышать пользовательский интерфейс, а затем повышать последовательность выполнения, убедитесь, что SUPPORTDIR указан в свойстве SecureCustomProperties. Только «безопасные» свойства, которые получают значение в последовательности пользовательского интерфейса, переносятся в последовательность выполнения. Свойства «PUBLIC» по умолчанию вернутся к тому, что было тогда, когда установщик начал выполнение.

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

0 голосов
/ 13 января 2011

Для дублирования и расширения информации из моего комментария до Доступ к InstallShield "Файлы поддержки" из DTF (управляемое настраиваемое действие) :

Объект класса Session передается пользовательскому действию в DTF. Используйте сеанс ["SUPPORTDIR"] для доступа к значению свойства (для немедленных действий). Для отложенного действия вам нужно будет передать его через CustomActionData. Кроме того, для немедленного CA убедитесь, что вы запланировали действие, которое читает SUPPORTDIR после CostFinalize - точки, когда все записи в таблице Directory становятся доступными как свойства.

...