installshield с пользовательским действием

Я создаю базовый проект msi, используя премьеру installsheild 2012. У меня две проблемы.

1.) MSI необходимо запустить собственный исполняемый файл после того, как он создал папки и файлы устанавливаемого приложения. Это нужно сделать только один раз, когда приложение устанавливается.

2.) MSI также должен сообщить запускаемому пользовательскому исполняемому файлу, какой язык выбрал пользователь для запуска MSI.

Я понятия не имею о проблеме 2. Что касается проблемы 1, вот моя попытка, как описано ниже:

То, как я это настроил сейчас, запускается один раз в самом начале, прежде чем даже создавать файлы и папки продукта. Ниже приведены мои настройки

введите здесь описание изображения

и нажмите «Далее», чтобы перейти к экрану ниже....

введите здесь описание изображения

Теперь, чтобы запустить пользовательский исполняемый файл только после создания файлов и папок, если я изменю выполнение в сценарии с «Немедленное выполнение» на «Зафиксировать выполнение» на первом изображении выше и перейду к следующему экрану, то я получить следующую ошибку с любой комбинацией, которую я пробовал введите описание изображения здесь

Пожалуйста, помогите мне здесь. Спасибо за ваше время.


person user20358    schedule 17.11.2011    source источник


Ответы (1)


Для комбинации In-Script Execution следует использовать отложено или фиксация< /а> исполнение. Если для пользовательского действия требуются права администратора, его следует отложить или зафиксировать в системном контексте.

Отложенные или зафиксированные действия не выполняются в InstallUISequence, поэтому в диалоговом окне Вставить в последовательность убедитесь, что для параметра Установить последовательность пользовательского интерфейса установлено значение:

<Absent from sequence>

Отложенные действия выполняются до InstallFinalize. Поскольку вы хотите запустить свое действие после установки файлов, вы можете установить для комбинации Установить последовательность выполнения значение:

After InstallFiles

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

[ProductLanguage]

Это свойство содержит идентификатор языка. Список идентификаторов можно найти здесь: http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx

person cosmin    schedule 17.11.2011
comment
Спасибо. Мне удалось разобраться. Однако я использовал «After InstalInitialize» вместо «After InstallFiles». Будут ли какие-то проблемы в дальнейшем при переходе таким путем? - person user20358; 18.11.2011
comment
InstallInitialize выполняется перед установкой файлов. Таким образом, ваше пользовательское действие не будет иметь доступа к установленным файлам. - person cosmin; 18.11.2011