更新dll文件给出访问被拒绝/错误5

时间:2010-09-08 09:26:26

标签: inno-setup

当覆盖一个DLL失败时,我的安装程序会给出ERROR访问被拒绝对话框, 它有时被锁定和使用。

这样做的建议程序是什么..

我可以以某种方式让INNO进行比较,如果它甚至需要覆盖这个DLL(大小匹配吗?)

1 个答案:

答案 0 :(得分:1)

InnoSetup会自动比较文件,看看是否需要通过查看文件中的版本资源来替换它们。

您应该将RestartReplace标志添加到DLL的[Files]条目(以及可能在内存中/已锁定的任何其他文件)。来自InnoSetup文档:

  

restartreplace

     

当需要现有文件时   替换,它正在使用(锁定)   另一个运行过程,安装程序将由   默认显示错误消息。这个   flag告诉安装程序改为注册   下次要替换的文件   重启系统(通过调用   MoveFileEx或在中创建条目   WININIT.INI)。当发生这种情况时,   将提示用户重新启动他们的   计算机在最后   安装过程。

     

保持与Windows的兼容性   95/98 / Me,长文件名不应该   用于带有此标志的条目。只要   支持“8.3”文件名。   (Windows NT平台没有这个   限制。)

     

注意:此标志对此无效   Windows NT平台,如果用户这样做   没有管理权限。   因此,使用此标志时,它是   建议你离开   PrivilegesRequired [Setup]部分   指令默认设置为   管理员。