Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[52.14.87.152] |
|
Сообщ.
#1
,
|
|
|
Привет коллеги!
Уже весь мозг сломал, мне нужно что бы мой инсталлятор запускал установку SQLLocalDB.msi, все перепробовал, но возникает ошибка (в логах SELECT `Message` FROM `Error` WHERE `Error` = 1721). Вот кусочек XML <CustomAction Id="RunMainApp" FileKey="SqlLocalDBx64" ExeCommand="" Execute="deferred" Impersonate="no" Return="check" /> <InstallExecuteSequence> <Custom Action="RunMainApp" Before="InstallFinalize"> <![CDATA[NOT REMOVE]]> </Custom> </InstallExecuteSequence> </Product> Это возможно вообще? Уже морально готов заказать написание инсталлятора для своей программы у местных гуру, к кому можно обратиться? |
Сообщ.
#2
,
|
|
|
2 deferred фазы не могут сосуществовать. ты из deferred пытаешь запустить другой инсталлер (тоже с deferred). такая конструкция никогда работать не будет
Поменяй deferred на immediate. |
Сообщ.
#3
,
|
|
|
К сожалению не помогло.
|
Сообщ.
#4
,
|
|
|
Ну давай от печки
SqlLocalDBx64 - указывает на exe или на msi? Добавлено кроме того, я так понимаю, что SqlLocalDBx64 - это Id устанавливаемого файла, т.е. ты хочешь запустить установленный файл, значит запускать установку нужно после того, как этот файл установится поэтому растополжить нужно после InstallFinalize. |
Сообщ.
#5
,
|
|
|
SQLLocalDBx64.msi
В момент, когда мой инсталлятор выдает ошибку этот файл находится уже в папке, куда инсталлируется программа. |
Сообщ.
#6
,
|
|
|
Цитата lisp @ SQLLocalDBx64.msi *.msi - это не исполняемый файл. Так что запускать его смысла нет Нужно запускать msiexec.exe \i <путь к msi> \qn (\qn - невидимая установка) Цитата lisp @ В момент, когда мой инсталлятор выдает ошибку этот файл находится уже в папке, куда инсталлируется программа. то, что файл установлен говорит только о том, что кастом экшен выполняется посто экшена InstallFiles. Однако ты расположил свой экшен перед InstallFinalize, т.е. в deferred фазе. У вызываемого msi файла тоже есть deferred фаза... таким образом ты пытаешься запустить две deferred фазы одновременно. А этого дельть нельзя (точнее говоря невозможно). |