描述:
现在因客户需要,更新了一个打印控件,
以前一直是正常的,现在控件更新后,控件不能自动下载注册了,应该怎样来安装部署啊
控件在一个cab包里.我将包替换后,只能手动注册ocx控件才能正常使用.
以前是自动注册的,我只更新了cab包,为什么现在必须手动更新呢
解决方案1:
inf里面有fileVirsion之类的东西吧.不写也可以
打包签名:
首先要有工具包,包括以下几个软件:
makecert.exe 制作cer格式的证书,即X.509证书,同时可以创建私钥
cert2spc.exe 将cer格式证书转换成spc格式证书,即PKCS #7证书
signcode.exe 将证书签署到ocx上去
chktrust.exe 检查签署证书后的ocx是否正确
还有一个certmgr.exe,是管理证书用的。可以从这里面导出root.cer来,
网上很多文章写到这个证书,但 是在VC的安装盘中却找不到。其实,没
有也没关系的。这几个软件可以从VC的安装盘中找到。
下面是具体的步骤:
1、创建一个自己的证书文 件:
makecert /sv "Record.PVK" /n "CN=DreamCaptial" dream.cer
这里,Record.PVK表示新创建的私人密钥保存文件名
DreamCaptial是你想显示的公司名
dream.cer是你创建最后的证书文件名
这些根据你自己的要求填写,最后得到Record.PVK和dream.cer两个文件。
其中,运行过程中 需要输入私人密钥的保护密码,一定要输入一致,不要
出错。
2、转换cer格式为spc格式(可以省略)
cert2spc dream.cer dream.spc
得到dream.spc文件。
3、给ocx进行签名
运行signcode,命令行的我没有试验通过,我是通过界面实 现的。
signcode运行后会出现数字签名向导,首先选择你要签名的ocx,
下一步后会出现签名选项,一种是典型,一种是自定义。选择自定义,
这样才能从文件选择证书,选择前面制作的dream.spc,再下一步是
选择私钥文件,选择Record.PVK,输入私人密钥的保护密码,选择散
列算法 ,一般用md5就可以了,下一步是选择其他证书,直接下一步,
填写一下这个控件的声明,用户用ie浏览的时候,会弹出证书说明,
再下一步是加盖时间戳,如 果需要,用以下地址:
http://timestamp.verisign.com/scripts/timstamp.dll
要求已经上网并能出国,然后直接下一步就完成了。
4、用chktrust检查是否正确
chktrust -v RecordProj.ocx
就这样,得到了一个测试证书,恩,虽然只是一个测试证书,但至
少保证这个ocx在ie浏览的时候能够弹出来一个窗 口,问你是否安装,
而不是直接禁止了。
将activex的版本改为1,1,0,23,然后CODEBASE="HcEGOV.CAB#version=1,1,0,23"
解决方案3: 重新编译时更改其版本号,然后重新打包、签名,重新发布到网上;当客户端访问到该发布的控件时,会自动检测版本号,并自动更新下载。
将html中CODEBASE部分的版本属性更新一下,