【发布时间】:2013-07-16 04:45:34
【问题描述】:
我们使用 Inno Setup(版本 5.4.2)作为打包工具来生成我们的安装程序。在将我们的软件从旧版本升级到当前版本时, 我们尝试覆盖现有的二进制文件/驱动程序。这通常会导致问题,因为某些监控软件(如“HP ArcSight Logger/Connector”、“SplunkUniversalForwarder”等)在我们的二进制文件中保存文件句柄并导致覆盖失败。我们的安装程序每次遇到此问题时都会显示以下弹出消息。
"C:\Windows\System32\drivers\xxx.sys
尝试替换现有文件时出错: 删除文件失败;代码 5。 访问被拒绝。
点击Retry再试一次,Ignore跳过这个文件(不推荐),或者Abort取消安装”
有趣的是,即使在上述弹出窗口之后,我们也能够手动将 xxx.sys 重命名为 xxx.sys.old。我们曾经建议客户重命名 xxx.sys 到 xxx.sys.old 并“重试”安装。重命名后,升级完成,没有任何问题。
问题
1) 当我们遇到这个问题时,是否可以通过程序重命名 xxx.sys。
2) 任何重现 DeleteFile 的过程都失败了;代码 5 问题?
【问题讨论】:
-
安装驱动程序很复杂,最好留给专门的助手。 See this previous question.
标签: windows inno-setup