DTF и MsiGetProperty
Связано с: Доступ к InstallShield "Файлы поддержки" из DTF (управляемое настраиваемое действие)
Мне нужно прочитать свойство SUPPORTDIR. Согласно этому форуму ( http://community.flexerasoftware.com/showthread.php?t=180742&page=3), мне нужно использовать MsiGetProperty.
Как я могу позвонить в MsiGetProperty из DTF?
2 ответа
Класс сеанса DTF имеет метод:
публичная строка this[строковое свойство] get: set:
Это удалено к неуправляемой стороне C++, где они вызывают MsiGetProperty и MsiSetProperty. Это вроде как VBScript Session.Property("SUPPORTDIR"), только проще.
InstallShield должен был запланировать настраиваемое действие под названием ISSetupFilesExtract. Зарегистрируйте вашу установку и посмотрите, выполняется ли она и назначен ли путь к свойству.
Единственное другое замечание, о котором я могу подумать, это то, что если вы делаете правильный UAC, не поднимая свой пользовательский интерфейс, а затем повышая свою последовательность выполнения, убедитесь, что SUPPORTDIR указан в свойстве SecureCustomProperties. Только "безопасные" свойства, которые получают значение в последовательности пользовательского интерфейса, переносятся в последовательность выполнения. Свойства "PUBLIC" по умолчанию вернутся к тому, что было тогда, когда установщик начал выполнение.
Я могу сказать вам, что я использую SUPPORTDIR (иногда напрямую, а иногда через сериализацию CustomActionData) в своих пользовательских действиях DTF, и у меня нет проблем с этим.
Чтобы продублировать и расширить информацию из моего комментария для доступа к InstallShield "Файлы поддержки" из DTF (управляемое настраиваемое действие):
Объект класса Session передается пользовательскому действию в DTF. Используйте сеанс ["SUPPORTDIR"] для доступа к значению свойства (для немедленных действий). Для отложенного действия вам нужно будет передать его через CustomActionData. Кроме того, для немедленного CA убедитесь, что вы запланировали действие, которое читает SUPPORTDIR после CostFinalize - точки, когда все записи в таблице Directory становятся доступными в качестве свойств.