InnoSetup: как запустить 64-битный установщик при установке 32-битного приложения, получив файл не найден - PullRequest
0 голосов
/ 29 сентября 2018

Я использую InnoSetup для установки 32-разрядного настольного приложения, а в разделе «Запуск» запускаю 64-разрядный установщик Firebird.Я работаю в Win10.

Но независимо от того, что я пытался сделать, я получаю сообщение об ошибке, в котором говорится, что он не может быть запущен и что файл не может быть найден, Ошибка 2.

FB3Установочный файл .0 виден в Проводнике и может запускаться через Проводник просто отлично.32-битный установщик Firebird запускается нормально с установкой моего приложения.

Я использовал каталог {tmp} и пробовал другие каталоги, включая C: \ Temp.Ничего не помогло.

У меня есть PrivilegesRequired = admin и пробовал ArchitecturesInstallIn64BitMode = x64 ia64.Это не сработало.Я попытался убедиться, что вручную выбрал «запуск от имени администратора» при запуске установщика.

Флаги включают «Flags: runascurrentuser waituntilterminated postinstall 64bit» для установщика Firebird в разделе «Выполнить».

Я пыталсяс помощью Exec () в BeforeInstall при запуске моего приложения, но при этом выдается то же сообщение об ошибке.

В справке InnoSetup в разделе «Ограничения 64-разрядной установки»: «1015 *

»Вы не можете загружать / использовать 64-разрядные библиотеки DLL в разделе [Код], поскольку Windows не позволяет 32-разрядным процессам загружать 64-разрядные библиотеки DLL (и наоборот). Однако 32-разрядный процесс может запускать 64-разрядныеEXE. Используйте для этого функцию Exec или раздел [Run]. "

Таким образом, я все еще думаю, что что-то упустил.

Во время тестового запуска установщика, который только что попробовалзапустить 64-битный установщик FB3.0, который изначально не запускался с той же ошибкой, но как только я явно добавил PrivilegesRequired = admin, это сработало.Кроме того, в InnoScript, инструменты: параметры: общие;проверьте запуск от имени администратора (который не устанавливает PrivilegesRequired = admin, кстати, не уверен, где это отражено в скрипте.)

В любом случае, как только я включил установку моего приложения (32 бита), вернулсяошибка выше.

Любые идеи о том, как я могу запустить 64-разрядный установщик в Inno с моей установкой 32-разрядного приложения?

Спасибо!

1 Ответ

0 голосов
/ 02 октября 2018

Мне удалось создать установщик, который загружал / запускал простое приложение и запускал установщик Firebird 3.0 x64 без каких-либо ошибок.

Из этого я в конечном итоге обнаружил, что параметры командной строки для Firebird 3,0 вызывали эту проблему, хотя параметры были взяты прямо из руководства.

Параметр, вызвавший ошибку, был: / COMPONENTS = "ServerComponent \ SuperServerComponent, ServerComponent, DevAdminComponent, ClientComponent", следующим образом это / TASKS = "список имен задач, разделенных запятыми", который в моем случае включает / TASKS = "«UseSuperServerTask \ UseGuardianTask и др. *

Мне пришлось удалить« ServerComponent \ SuperServerComponent »из списка параметров.Я не уверен, что SuperServer правильно настроен таким образом, но установщик Firebird 3.0 x64 теперь работает правильно из моего установщика приложений.

В любом случае я использую отдельный файл firebird.conf, который копируется в каталог Firebird после установки firebird, и это устанавливает супер-сервер.Спасибо за ваш ответ, Мартин.

Полагаю, что дополнительный флаг для этого сообщения должен включать "Firebird". Не уверен, как добавить флаги после публикации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...