installshield с персонализирано действие

Създавам основен msi проект с помощта на installsheild 2012 premier. Имам два проблема.

1.) MSI трябва да стартира персонализиран exe, след като е създал папките и файловете на инсталираното приложение. Трябва да направи това само веднъж, когато приложението се инсталира.

2.) MSI също трябва да каже на стартирания персонализиран exe на какъв език е избрал потребителят да стартира MSI.

Нямам представа за проблем 2. По отношение на проблем 1 ето моя опит, както е описано по-долу:

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

въведете описание на изображението тук

и щракнете върху следващия, за да отидете на екрана по-долу....

въведете описание на изображението тук

Сега, за да стартирам персонализирания exe само след като файловете и папките са създадени, ако променя изпълнението на In-Script от „Незабавно изпълнение“ на „Извършване на изпълнение“ в първото изображение по-горе и продължа към следващия екран, тогава аз получавам следната грешка с каквато и комбинация да съм опитвал въведете описание на изображението тук

Моля, помогнете ми тук. Благодаря за отделеното време.


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


Отговори (1)


За комбинацията In-Script Execution трябва да използвате отложен или комит изпълнение. Ако вашето персонализирано действие се нуждае от администраторски привилегии, то трябва да бъде отложено или ангажирано в Системен контекст.

Отложените действия или действията за ангажиране не се изпълняват в InstallUISequence, така че в диалоговия прозорец Вмъкване в последователност се уверете, че комбинацията Инсталиране на UI последователност е зададена на:

<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