我有一个作为 CAB 交付的 ActiveX 控件。我有一个 HTML 页面,它只是一个带有出租车名称和 clsid 的 OBJECT 标记(因此页面上没有其他内容)。
这会导致 IE 询问是否安装 ActiveX 控件,我允许这样做。它下载 CAB,提取安装程序并开始运行它。
当 MSIEXEC 正在运行并尝试安装控件时,IE 决定删除 .MSI 文件所在的临时目录中的文件。有时,文件被进程锁定,删除失败,然后安装成功,但大多数时候删除成功,然后 MSIEXEC 记录一个错误,指出 MSI 文件不存在。
我可以看到所有这些都发生在 PROCMON 中,但我不知道为什么。它可以在多个版本的 Windows 和 IE 中重现。这不仅仅是删除 MSI - 它正在删除临时目录中的文件。
我唯一的线索是文件的修改日期是它在构建机器上创建的日期。这不是我可以不断更新的东西(它在网络服务器上的 CAB 内部)——我不能每五分钟构建一次这个 CAB 以保持修改后的日期新鲜——所以,我不认为那是它,但想提一下它作为线索。
为什么 IE 会删除临时文件中的文件,有什么方法可以阻止它这样做?