当覆盖一个DLL失败时,我的安装程序会给出ERROR访问被拒绝对话框, 它有时被锁定和使用。
这样做的建议程序是什么..
我可以以某种方式让INNO进行比较,如果它甚至需要覆盖这个DLL(大小匹配吗?)
答案 0 :(得分:1)
InnoSetup会自动比较文件,看看是否需要通过查看文件中的版本资源来替换它们。
您应该将RestartReplace标志添加到DLL的[Files]条目(以及可能在内存中/已锁定的任何其他文件)。来自InnoSetup文档:
restartreplace
当需要现有文件时 替换,它正在使用(锁定) 另一个运行过程,安装程序将由 默认显示错误消息。这个 flag告诉安装程序改为注册 下次要替换的文件 重启系统(通过调用 MoveFileEx或在中创建条目 WININIT.INI)。当发生这种情况时, 将提示用户重新启动他们的 计算机在最后 安装过程。
保持与Windows的兼容性 95/98 / Me,长文件名不应该 用于带有此标志的条目。只要 支持“8.3”文件名。 (Windows NT平台没有这个 限制。)
注意:此标志对此无效 Windows NT平台,如果用户这样做 没有管理权限。 因此,使用此标志时,它是 建议你离开 PrivilegesRequired [Setup]部分 指令默认设置为 管理员。