Можно ли добавить условие в основное пользовательское действие InstallShield? (например, OnInstallFilesActionBefore) - PullRequest
3 голосов
/ 31 марта 2009

Я добавил условие к пользовательскому действию OnInstallFilesActionBefore через редактор последовательностей. Я сделал так, чтобы он выполнялся только при первой установке программы, что означает, что мое состояние:

Not Installed

Теперь я вижу это предупреждение при компиляции:

ISDEV: предупреждение Условие для Custom Action OnInstallFilesActionBefore в Последовательность InstallExecuteSequence имеет был изменен. Это приведет к непредсказуемые результаты во время выполнения.

Видите, я думал, что Custom Action - это просто специальная оболочка InstallShield, которая позволяет нам добавлять код перед действием InstallFiles. Делает ли он что-нибудь еще, кроме кода, который я к нему добавляю? Если все, что он делает, это выполняет код, который я добавил к нему, тогда я должен обратить внимание на это предупреждение? Я немного обеспокоен тем, что он говорит: « будет вызывать непредсказуемые результаты во время выполнения», как если бы они были уверены.

Насколько я могу судить, все работает нормально. Мой код выполняется при первой установке, но не при удалении или восстановлении. Это то, что я хочу.

Для записи я использую DevStudio v9.

1 Ответ

2 голосов
/ 06 апреля 2009

Если я правильно помню, и прошло несколько лет, поэтому я могу ошибаться, это действие включено, только если вы используете гибридный тип проекта InstallScript MSI. Поэтому он будет использоваться для запуска действий installscript перед событиями копирования файла.

Таким образом, добавление к нему условия не вызовет проблем, если у вас там нет никаких действий installscript. Хотя это приводит к вопросу о том, почему вы хотите условие в первую очередь.

Возможно, вам лучше использовать базовый тип проекта MSI, который будет просто включать стандартные действия MSI. Это означает, что у вас также нет зависимости от времени выполнения ISScript Installshield, так что это, как правило, лучшая практика, которая полностью устраняет беспокойство, которое стоит за вашим вопросом.

...