我正在研究一个使用OnLockedFile()函数在升级过程中处理锁定文件的InstallScript项目。重新启动PC后,我选择ERR_PERFORM_AFTER_REBOOT来执行文件替换。
我在Setup.url上的实现是:
function OnFileLocked(File)
begin
// return SdExceptions(LOCKED, File);
return ERR_PERFORM_AFTER_REBOOT;
end;
通常,升级脚本运行平稳,所有内容都被新版本覆盖。
但是,在一种情况下,客户在升级过程中使用外部脚本启动了我的服务,则大约50个文件被锁定,OnFileLocked()函数将在重启后启动以替换文件。但是重新启动后,有3-4个jar文件没有被InstallShield取代。
反正有解决此问题的方法吗?或者至少可以通过某种方式获得未覆盖文件的列表,以警告用户升级失败/损坏。
p / s:在计算机启动过程中,外部脚本似乎还尝试以某种方式启动/操纵我的服务和其他服务,而客户不想删除该外部脚本。