我的任务是在我们的Aspx Web应用程序中更新并安装新版本的旧ActiveX控件(快乐!)。实际更新相当简单,但安装让我感到头疼。这是我试过的:
然后在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控件?
由于
萨姆
答案 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")))