如何制作cab包(解决不能注册的问题)

    在上一篇文章中,讲述了如何制作客户端Activex插件的cab包,但是在使用过程中发现有的浏览器不能注册成功,手动注册也不行,提示缺少动态链接库的问题,导致不能正常使用。后来重新编译ocx,将其他dll补充进来一起打包,但仍然不能注册成功。

 

    于是将所有文件复制到system32文件夹下,手动进行注册,结果注册失败。原来是inf中的写法将system32作为目的文件夹,而该文件夹却不允许这样操作。至于原因,目前还不清楚,网上搜索到的例子也都是使用system32,可能我的ocx比较特殊吧,那就使用system32下新建的一个目录吧,这次手动注册可以成功。

 

    重新打包、测试,有点崩溃了,为什么还是注册不了。现象是浏览器提示是否安装,点击安装后无反应,刷新页面还是提示是否安装。后来查看支付宝的支付控件中的inf文件,按照其格式重新制作inf文件,再次测试,成功!

 

如何制作cab包

制作SSL VPN客户端插件cab包有两种方法,一种是手动打包,另一种是利用Ant自动打包,下面分别对两种方法进行说明,你可以根据熟练程度自由选择。

一、手动打包

准备工作

l  用到的工具

打包工具iexpress.exe

签名工具signcode.exe

代码签名证书

l  打包文件

WVC.ocx

LiteUnzip.dll

mfc80u.dll

mfcm80u.dll

msvcm80.dll

msvcp80.dll

msvcr80.dll

Microsoft.VC80.CRT.manifest

Microsoft.VC80.MFC.manifest

       在制作cab包之前,需要准备以上的打包、签名工具和文件,将iexpress.exe和signcode.exe复制到Java环境变量的bin目录下。打包文件全部存放在独立的一个文件夹下。

制作步骤

步骤1 准备inf文件

将以下代码另存为wvc.inf,存放于打包文件目录下。文件内容一般情况下不需要改变,除非cab需要增加或减少文件的情况下,再修改此文件。

 

 

Text代码   收藏代码
  1. [version]  
  2. signature="$CHICAGO$"  
  3. AdvancedINF=2.0  
  4.   
  5. [DefaultInstall]  
  6. CopyFiles=files  
  7. RegisterOCXs=RegisterFiles  
  8.   
  9. [DefaultUninstall]  
  10. cleanup=1  
  11. Delfiles=files  
  12. UnRegisterOCXs=RegisterFiles  
  13.   
  14. [SourceDisksNames]  
  15. 1 = %DiskName%,"wvc.cab",1  
  16.   
  17. [SourceDisksFiles]  
  18. WVC.ocx=1  
  19. LiteUnzip.dll=1  
  20. mfc80u.dll=1  
  21. mfcm80u.dll=1  
  22. msvcm80.dll=1  
  23. msvcp80.dll=1  
  24. msvcr80.dll=1  
  25. Microsoft.VC80.CRT.manifest=1  
  26. Microsoft.VC80.MFC.manifest=1  
  27. westone.cer=1  
  28.   
  29. [RegisterFiles]  
  30. %11%\sslvpn\WVC.ocx  
  31.   
  32. [DestinationDirs]  
  33. files=11, sslvpn  
  34.   
  35. [files]  
  36. WVC.ocx=WVC.ocx  
  37. LiteUnzip.dll=LiteUnzip.dll  
  38. mfc80u.dll=mfc80u.dll  
  39. mfcm80u.dll=mfcm80u.dll  
  40. msvcm80.dll=msvcm80.dll  
  41. msvcp80.dll=msvcp80.dll  
  42. msvcr80.dll=msvcr80.dll  
  43. Microsoft.VC80.CRT.manifest  
  44. Microsoft.VC80.MFC.manifest  
  45. westone.cer=westone.cer  
  46.      
  47. [WVC.ocx]  
  48. file-win32-x86=thiscab  
  49. clsid={C8E6EFFA-ED02-4858-836A-B164102F3C5D}  
  50. RegisterServer=yes  
  51. FileVersion=1,0,0,1  
  52.      
  53. [LiteUnzip.dll]  
  54. file-win32-x86=thiscab  
  55. FileVersion=0,0,0,2  
  56.   
  57. [mfc80u.dll]  
  58. file-win32-x86=thiscab  
  59. FileVersion=8,0,50727,42  
  60.   
  61. [mfcm80u.dll]  
  62. file-win32-x86=thiscab  
  63. FileVersion=8,0,50727,42  
  64.   
  65. [msvcm80.dll]  
  66. file-win32-x86=thiscab  
  67. FileVersion=8,0,50727,42  
  68.   
  69. [msvcp80.dll]  
  70. file-win32-x86=thiscab  
  71. FileVersion=8,0,50727,42  
  72.   
  73. [msvcr80.dll]  
  74. file-win32-x86=thiscab  
  75. FileVersion=8,0,50727,42  
  76.   
  77. [westone.cer]  
  78. file-win32-x86=thiscab  
  79.   
  80. [Strings]  
  81. DiskName = "sslvpn"  

 

 

注释:

²  "thiscab" 是一个关键字,意指包含该INF的CAB文件。也可以从网上下载所需要的DLL文件,只要指定一个HTTP 网址即可,如:

²  关键字"file-win32-x86" 指定平台是 x86。

²  文件版本号可见属性。

²  "DestDir"指的是装载目录或者文件的地址: 11 指定为系统目录 WINDOWS/ /SYSTEM32;

²  "clsid" 指的是要安装控件的CLSID。

步骤2 签名ocx文件

运行signcode.exe

1)      选择要签名的ocx文件,由于dll不需要注册到系统,所以不必签名。

2)      选择代码签名证书公钥。

3)      选择代码签名证书私钥。

4)      其他选项均为默认设置,输入证书私钥口令,输入时间戳,再一次输入私钥口令。

步骤3 制作CAB

运行iexpress.exe

1)      选择“Create new Self Extraction Directive file”,点击下一步。

2)      选择“Create compressed files only(ActiveX Installs)”,点击下一步。

3)      点击Add,选择所有文件包括inf,点击下一步。

4)      点击Browse,输入.CAB文件的存放地址(包含所取文件名),并且要选中 “Store files using Long File Name inside Package”。点击下一步。

5)      选择“Don’t save”,一直点击下一步,直到完成。

步骤4 签名CAB

 

同步骤2,选择刚刚生成的cab包进行签名,注意签名后复制到webapp/download目录时需要更名为wvc.cab。

 

步骤5 删除ocx插件

如果想删除已安装的插件,重新注册,那么进入安装目录c:\windows\downloaded program files,选中WVC删除即可。

二、自动打包

准备工作

l  用到的工具

打包工具cabarc.exe

签名工具signcode.exe

l  打包文件

WVC.ocx

LiteUnzip.dll

mfc80u.dll

mfcm80u.dll

msvcm80.dll

msvcp80.dll

msvcr80.dll

Microsoft.VC80.CRT.manifest

Microsoft.VC80.MFC.manifest

在制作cab包之前,需要准备以上的打包、签名工具和文件,将cabarc.exe和signcode.exe复制到Java环境变量的bin目录下。打包文件全部存放在webapp/download/wvc文件夹下。更新build.xml文件。

制作步骤

步骤1 准备inf文件

参照手动打包步骤。

步骤2 修改本地时间

 

由于代码签名证书已经过期,所以需要将本地时间修改成证书还没有过期的时间,否则签名失败。如果拥有未过期的代码签名证书,此步骤可以忽略。

步骤3 执行build.xml的activex任务

在Eclipse中打开build.xml文件,执行activex任务。该任务会自动签名wvc.ocx文件,生成wvc.cab并签名。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值