安装过程中ActiveX CAB错误

时间:2012-12-10 20:32:48

标签: c# permissions activex installshield cab

好的,所以我一直在构建一个c#activeX控件,并且在这个过程中遇到了问题......这就是说,除了安装程序之外,我现在已经把所有方面都搞定了

在我深入研究这个问题之前,我需要解释一下我的设置过程是如何工作的,以及为什么我选择了这条路线。

  1. 我有一个签名的CAB文件,用于存储我的setup exe,它是使用对象标签通过网页加载的
  2. setup exe是一个InstallShield LE项目,其中嵌入了我的项目(即要安装的文件是最终设置二进制文件的一部分)
  3. CAB文件中有一个INF文件,告诉调用者运行setup exe来安装控件
  4. 此过程运行正常并启动安装应用程序,然后成功安装控件。但是,在设置过程即将结束时,非管理员的用户会收到一条错误消息,指出以下内容:

    An error occurred while copying file myINFFile.inf
    
    Cannot copy file to destination directory.
    
    Click Retry to retry the operation or click Cancel to
    

    (是的,它只是在'到'之后切断了)

    如果你点击重试,它只会反复重复错误,直到你点击取消。如果你点击取消它会说“你想要设置继续吐出这个错误吗?”,然后继续成功安装控件。

    由于此错误仅发生在权限有限的用户身上,我认为问题在于,cab提取进程无法将inf文件解压缩到它试图将其解压缩到的位置...这只是非常烦人,因为这个文件不能用于其他目的,特别是在安装过程中,但我无法弄清楚问题发生的原因或解决方法......

1 个答案:

答案 0 :(得分:2)

使用process explorer(由Microsoft / SysInternals)查看写入的文件。

我的猜测是你没有正确设置安装程序以允许每个用户安装ActiveX控件。

(作者:Robert Petz)如果您将以下挂钩添加到INF文件中,它会正确运行并将cab提取到允许的位置:

 [Deployment]
     InstallScope=user