Запуск установщика Innosetup в Windows 10

Я получаю сообщение об ошибке при запуске установщика, созданного из Innosetup в Windows 10. Он отлично работает в Windows 8/8.1, но в Windows 10 появляется всплывающее окно, как показано ниже, в окне сообщения с «Закрыть программу» в конце.

Приложение-имя перестало работать "проблема привела к тому, что программа перестала работать правильно. Windows закроет программу и сообщит вам, доступно ли решение"

Однако при нажатии «Закрыть программу» установщик выполняет свою работу, но это раздражающее всплывающее окно вызывает проблему, поскольку пользователь должен вмешаться, чтобы закрыть окно сообщения.

Есть ли способ узнать, почему возникает ошибка, и какой-либо код/сообщение об ошибке для этого?

Я отладил код и обнаружил, что эта строка дает ошибку:

Exec('cmd.exe', ' /C My-Application.EXE /argument' + ' > logFile.txt', 
   ExpandConstant('{tmp}\'), SW_HIDE, ewWaitUntilTerminated, FW_Update_ResultCode);

person Raulp    schedule 26.06.2015    source источник
comment
news.jrsoftware.org/read/   -  person Abstract type    schedule 27.06.2015
comment
Возможно ли, что не Inno вызывает эту проблему, а exe, который вы пытаетесь запустить? Другими словами: правильно ли работает My-Application.EXE при автономном выполнении?   -  person Jens A. Koch    schedule 30.06.2015
comment
да, когда я запускаю это: /C My-Application.EXE /argument' + ' › logFile.txt' в командной строке с администратором или без него, например: My-Application.EXE /argument › logFile.txt, все работает нормально без ошибок, но не тогда, когда я вызываю его из кода inno, используя Exec, как указано выше.   -  person Raulp    schedule 30.06.2015
comment
Запускается ли ваше приложение без ошибок при запуске из другого места, кроме собственной папки? Вы сказали Inno установить рабочую папку {tmp} выше. Кроме того, ваше приложение может пытаться загрузить библиотеки или другие ресурсы, которых нет на компьютере пользователя.   -  person Miral    schedule 30.06.2015
comment
@Miral, спасибо за подсказку, и id сделал свое дело. Я исправил кое-что в инструменте, из-за которого необходимо использовать дополнительную dll, которую я забыл поместить в ExtractTemporaryFile (имя dll), и именно поэтому она не копировалась в папка tmp и, следовательно, вызывает проблему. Но все же я думаю, что innosetup должен был выдать предупреждение или исключение компилятора, например, файл с именем dll не найден. В любом случае, если вы поместите свой ответ в поле, я приму это как право отвечать ! Большое спасибо.:)   -  person Raulp    schedule 30.06.2015
comment
Inno мало что может с этим поделать — он не знает, каковы зависимости вашего приложения, и не может узнать, есть они там или нет.   -  person Miral    schedule 02.07.2015


Ответы (1)


Возможно, ваше приложение пытается загрузить зависимые библиотеки или другие ресурсы, которых нет на компьютере пользователя.

Вы также должны установить их на {tmp} либо через [Files] записи, либо через ExtractTemporaryFile, в зависимости от времени вашего Exec звонка.

person Miral    schedule 01.07.2015