在我的Web应用程序中安装新版本的ActiveX控件

时间:2011-01-07 10:00:11

标签: asp.net vb6 activex versioning

我的任务是在我们的Aspx Web应用程序中更新并安装新版本的旧ActiveX控件(快乐!)。实际更新相当简单,但安装让我感到头疼。这是我试过的:

  • 在VB6编辑器中,获取ActiveX项目的属性,并选中“Make”选项卡中的“autoincrement”复选框。
  • 将版本设置为1.0.12
  • 使用打包和展开向导创建新的CAB。
  • 将此CAB复制到我的网站。

然后在Aspx中,我更新了activeX的版本,如下所示:

Me.Page.Header.Controls.Add(New LiteralControl(String.Format("<div style=DISPLAY:none'><object id='PrtLabel' codebase='{0}' classid='CLSID:AB61148E-D4B5-4D4B-8867-9E4CE8229B5E' viewastext></object></div>", "PrtLabel.CAB#version=1,0,0,12")))

在此之后,我从“c:\ windows \ downloaded program files”文件夹中删除了prtlabel.dll和prtlabel.inf文件。

问题是,当我访问网页并要求我安装activeX时,它实际上并没有这样做(尽管没有出现错误消息)。当我回到“c:\ windows \ downloaded program files”文件夹时,只有prtlabel.inf文件被复制到那里,而不是prtlabel.dll文件。

是否有特殊的程序在您的网站上放置新版本的ActiveX控件?

由于

萨姆

2 个答案:

答案 0 :(得分:1)

比较原始和新的cabinet文件的内容。文件丢失了吗?

你也想在原始和新的inf文件上做差异。 PDW是否产生合理的inf?

在客户端PC上安装之前,可能会出现ActiveX控件未标记为可安全执行脚本的情况。

答案 1 :(得分:0)

嗯,一如既往魔鬼在细节中。事实证明,在HTML标记中你不需要只更改版本,而且还需要更改classid ...可以在新的CAB文件中找到。

Me.Page.Header.Controls.Add(New LiteralControl(String.Format("<div style=DISPLAY:none'><object id='PrtLabel' codebase='{0}' classid='**CLSID:AB61148E-D4B5-4D4B-8867-9E4CE8229B5E**' viewastext></object></div>", "PrtLabel.CAB#version=1,0,0,12")))