1

好的,所以我一直在构建 ac#activeX 控件,并且在此过程中遇到了书中的每一个问题......话虽如此,除了安装程序之外,我现在已经准备好了一切

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

  1. 我有一个签名的 CAB 文件,用于存储我的设置 exe,该文件是使用对象标签通过网页加载的
  2. setup exe 是一个 InstallShield LE 项目,其中嵌入了我的项目(即要安装的文件是最终安装二进制文件的一部分)
  3. CAB 文件中有一个 INF 文件,它告诉调用者运行 setup exe 来安装控件

此过程运行良好并启动设置应用程序,然后成功安装控件。但是,在设置过程快结束时,非管理员用户会收到一条错误消息,说明如下:

An error occurred while copying file myINFFile.inf

Cannot copy file to destination directory.

Click Retry to retry the operation or click Cancel to

(是的,它只是在'to'这个词之后切断)

如果您点击重试,它只会一遍又一遍地重复错误,直到您点击取消。如果您点击取消,它会显示“您希望安装程序在出现此错误后继续吗?”,然后继续成功安装控件。

由于此错误仅发生在权限有限的用户身上,我认为问题在于 cab 提取过程无法将 inf 文件提取到它试图将其提取到的位置……这很烦人,因为该文件没有其他用途,尤其是在安装过程中,但我无法弄清楚问题发生的原因或如何解决它......

4

1 回答 1

2

使用进程资源管理器(由 Microsoft/SysInternals 提供)查看写入的文件。

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

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

 [Deployment]
     InstallScope=user 
于 2012-12-10T21:57:35.913 回答