【问题标题】:Running Innosetup installer in Windows 10在 Windows 10 中运行 Innosetup 安装程序
【发布时间】:2015-09-12 22:37:03
【问题描述】:

在 Windows 10 上运行由 Innosetup 制作的安装程序时出现 en 错误。它在 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);

【问题讨论】:

  • 有没有可能,不是 Inno 导致了这个问题,而是你试图运行的 exe?换句话说:My-Application.EXE 独立执行时是否正常运行?
  • 是的,当我运行此命令时: /C My-Application.EXE /argument' + ' > logFile.txt' 在命令提示符下,无论是否有管理员,如下所示:My-Application.EXE /argument > logFile.txt ,它可以正常工作而没有错误,但当我使用上面的 Exec 从 inno 代码中调用它时就不行了。
  • 当您的应用程序从其自己的文件夹以外的其他位置运行时,您的应用程序是否可以正常运行?您已经告诉 Inno 将工作文件夹设置为上面的 {tmp}。此外,您的应用程序可能会尝试加载用户计算机上不存在的库或其他资源。
  • @Miral 感谢您的提示和 id 成功了。我在工具中修复了一些问题,需要它使用我忘记放在 ExtractTemporaryFile("dll-name") 下的额外 dll 和这就是它没有被复制到 tmp 文件夹并因此导致问题的原因。但我仍然认为 innosetup 应该给出编译器警告或异常,例如“找不到 dll 名称文件”之类的。无论如何,如果你把你的在框中回答,我会接受它作为正确答案!非常感谢。:)

标签: cmd exec inno-setup pascal silent-installer


【解决方案1】:

您的应用程序可能正在尝试加载用户计算机上不存在的依赖库或其他资源。

您也应该通过[Files] 条目或ExtractTemporaryFile 将这些安装到{tmp},具体取决于您调用Exec 的时间。

【讨论】:

    猜你喜欢
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 2015-03-10
    • 1970-01-01
    相关资源
    最近更新 更多