【问题标题】:Why would InstallShield be unable to find a file?为什么 InstallShield 找不到文件?
【发布时间】:2011-12-14 04:52:17
【问题描述】:

我有一个使用 IS2009 创建的 InstallShield (InstallScript) 安装,它每晚自动构建,并且已成功使用多年。几天前,安装开始失败;进度达到 99%,然后出现一个错误对话框,声称安装特定文件时出错;具体消息是“系统找不到指定的文件”。

  1. 可在 WinXP 和 Win7 上重现。

  2. 这不是由于安装程序的任何更改;这些文件已经数周/数月未动过

  3. 每次都是同一个文件,尽管它的名称后面附加了一些文本,并且具有 .rra 扩展名;根据我的阅读,这是在将其移动到最终目的地之前提取到 Windows 临时文件夹的临时文件。

  4. 其他同文件夹同类型文件安装成功。它也不是要安装的最后一个文件;当错误消失时,安装将退出,并且同一文件夹和其他位置的其他文件也会丢失。

  5. 文件是一个常规的动态文件链接,是功能的一部分;它没有被 InstallScript 或其他任何可能引入外部问题的东西操纵。该文件与许多其他已成功安装的文件之间的链接没有区别。

  6. 安装程序构建期间没有错误; IS 似乎可以很好地找到文件,我打开内置的 cab 来验证文件是否在里面。

  7. .ilg 日志文件或目标计算机上的 Windows 事件日志中未显示任何错误或相关信息。

  8. 我尝试删除 IS 项目和所有临时构建文件,然后从版本控制中签出新副本并从头开始重建,但问题仍然存在。

这怎么会发生,我还可以在哪里寻找原因?

【问题讨论】:

  • 听起来文件已从安装程序从中获取其组件的位置删除。仔细检查所有输入文件是否存在并且拼写正确。
  • 啊-错过了。那就不知道了。
  • 您在安装时是否运行了任何防病毒软件?如果是这样,请将其关闭,看看是否有任何不同。
  • @Yan Skylarenko 想法不错,但没有什么不同。也发生在从未安装过 AV 的锁定虚拟机上。

标签: windows installation installshield


【解决方案1】:

事实证明,InstallShield 会扫描具有相同内容的文件,并且为了减小安装程序文件的大小,只包含其中一个文件。安装时,主文件作为 rra 写入磁盘,然后复制以创建具有相同内容的任何其他文件。

在我们的例子中,我们最近添加了一个新文件,它位于不同的位置并具有不同的名称,其内容与现有文件完全相同。作为安装的一部分,我们删除包含原始文件的文件夹,假设在安装后期之前没有任何内容触及它。但是一旦引入了其他文件,InstallShield 就在安装的早期,在删除操作之前开始将 rra 版本写入文件夹。删除删除了 rra,当轮到它时,InstallShield 无法找到它。

希望这对其他人有所帮助,因为这种特殊的 InstallShield 行为以及一般 rra 文件的使用似乎没有在任何地方记录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 2023-03-31
    • 2021-12-09
    • 2011-04-27
    • 2016-10-20
    相关资源
    最近更新 更多