ало Все.
У меня двойная проблема. У меня есть проект WiX, над которым я работал, и мне было поручено заставить его выполнять выполнение программы независимо от того, нажимает ли пользователь отмену, прерывается установка (через уже существующую версию) или пользователь успешно завершает установку.
В настоящее время я использую встроенную систему диагностики:
<UIRef Id="WixUI_InstallDir" />
В настоящее время мне очень успешно удается запустить приложение после завершения установки. Сложность заключалась в том, что приложение находится в том же месте, что и установщик, и я не могу гарантировать, где оно будет. Поэтому я использовал следующий метод для выполнения программы после успешной установки:
<InstallExecuteSequence>
<Custom Action="PreventDowngrading" After="FindRelatedProducts">NEWPRODUCTFOUND</Custom>
<RemoveExistingProducts After="InstallInitialize" />
<Custom Action="PropertyAssign" Before="InstallFinalize">NOT Installed</Custom>
<Custom Action="LaunchFile" After="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>
<CustomAction Id='PropertyAssign' Property='PathProperty' Value='[SourceDir][DRIVEREXEC]' />
<CustomAction Id="LaunchFile" Property="PathProperty" ExeCommand='/S' Return="asyncNoWait" />
Два настраиваемых действия используются для запуска приложения после завершения установки. Из-за этого я не могу назначить два настраиваемых действия, когда программа существует. OnExit = "error" вызывает исключение, если два настраиваемых действия имеют одинаковые настройки.
Как безоговорочно выполнить приложение, местоположение которого неизвестно, но предполагается, что оно находится в том же каталоге, что и установщик?
Я благодарю вас за ваше время и добрые ответы