有时,在运行InstallShield安装时,会出现一个错误对话框,其中包含文本“1158”,“确定”按钮以及其他内容。 InstallShield错误1158表示从关联的ini文件加载字符串时出现问题,但是Flexera的troubleshooting steps不适用于我。另外,我怀疑字符串是否确实存在问题。该页面上的信息表明字符串问题不会是间歇性的。
到目前为止,这是我的调查结果:

  • 该问题在显示任何其他对话框(包括前提条件对话框)之前发生,这使我相信这是 bootstrap (setup.exe)而不是Windows Installer的问题。
  • 问题是间歇性的,在某些机器上经常发生,而在其他机器上则几乎没有。
  • 问题与安装的特定版本无关。相同的setup.exe可能一次失败,并且如果再次在同一台计算机上运行,​​则可能成功。
  • 该问题似乎与Windows资源管理器有关。我从未能够通过其他方式(例如cmd.exe)启动setup.exe来重现此问题。
  • 这会妨碍调试工作,因为传递命令行参数来生成调试日志会导致安装成功。
  • 我只在Windows XP上看到过此问题。
  • 这可能没有任何意义,因为在我公司中不经常使用较新版本的Windows。

  • 还有其他人遇到此问题或知道解决方法吗?

    最佳答案

    我与Flexera开了一张支持票,以深入了解这一点。根据他们的回答,这是setup.exe bootstrap 的翻译问题。在InstallShield 2009中,如果将“安装启动器类型”字段(在发行版的“安装”选项卡上)设置为Unicode,则有时可能会出现此问题。将“安装启动器类型”设置为ANSI似乎可以解决此问题。另外,我在InstallShield 2010中还没有遇到该问题,因此他们可能已经解决了该问题。

    作为附带说明,有人告诉我InstallShield 2009是第一个允许Unicode“安装程序启动程序类型”的版本,因此该错误可能是在该版本中引入的。以前的版本始终使用ANSI。

    关于runtime-error - 如何防止InstallShield 1158错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2274083/

    10-10 15:59