2016-04-13 6 views
0

Я создал один базовый проект MSI в InstallShield. Я хочу достичь одного сценария. Для этого я устанавливаю одно свойство во время установки с помощью функции installScript MsiSetProperty(). Но я хочу также прочитать значение того же свойства во время удаления. Мне нужно значение свойства при деинсталляции, которое установлено во время установки.Как узнать стоимость имущества при деинсталляции?

Итак, есть ли способ получить значение свойства при деинсталляции, которое установлено во время установки?

ответ

0

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

0

Чтение имущества при деинсталляции такое же, как чтение его во время установки: вы вызываете MsiGetProperty(), и если он находится в отложенном контексте, вы должны передать его через свойство CustomActionData. Обратите также внимание, что установка свойства во время отложенного контекста не делает многого.

Однако, вероятно, вы можете отключить вас, так как свойства, как правило, не сохраняются в сеансах установщика Windows. Существуют исключения, такие как DirProperties для установленных компонентов, которые автоматически сохраняются. Но большинство свойств просто забываются, когда текущее действие заканчивается. Типичная рекомендация состоит в том, чтобы следовать шаблону «запомнить свойство», который в двух словах состоит из сохранения значения свойства в разделе реестра и чтения его с помощью системного поиска.

+0

Я создал одно свойство «PROP123» в PropertyManager и установил его значение равным 0. Тогда я создал одно пользовательское действие «CA123» и в том, что я устанавливаю значение «PROP123» в 1. Я выполняю «CA123» только на момент установки. Во время удаления, когда я читаю «PROP123», я получаю его значение 0. Здесь я хочу значение 1 при деинсталляции. Можете ли вы, пожалуйста, описать меня, как я могу это достичь? –