一、 前言                              

接着上一篇《.Net魔法堂:史上最全的ActiveX开发教程——开发篇》,本篇讲述如何发布我们的ActiveX。

二、废话少讲,马上看步骤!                      

1. 打包

   C#开发的Activex不像`OCX`那样直接通过`regsvr32.exe`注册,而采用两种方式发布使其运行在浏览器上。
   1. 离线安装:将控件类库打包成MSI安装包,然后在客户端安装。
    1.1. 添加安装项目

    

    1.2. 右键“添加”->“项目输出”,选择ActiveX控件为“主输出”

    

     1.3. 双击“解决方案资源管理器”的“检测到的依赖项”下的 Microsoft.NET Framework 并修改“启动条件”下 .NET Framework 的Version为.NET             Framework2.0

    

     1.4. 修改“主输出来自XXX”的 Register 属性为 vsdrpCOM

     

  2. 在线安装:将MSI再封装成CAB包,并将CAB包随应用一同发布,当浏览器访问含该ActiveX控件时就会自动提示安装。
    
2.1. 定义cab.ddf    

.OPTION   EXPLICIT
.Set Cabinet=on
.Set Compress=on
.Set MaxDiskSize=CDROM
.Set ReservePerCabinetSize=6144
.Set DiskDirectoryTemplate="."
.Set CompressionType=MSZIP
.Set CompressionLevel=7
.Set CompressionMemory=21
.Set CabinetNameTemplate="自定义CAB文件名.CAB"
"installer.inf"
"打包的msi文件名称.msi"

     2.2. 定义installer.inf

[Setup Hooks]
hook1=hook1[hook1]
run=msiexec /i %EXTRACT_DIR%\打包的msi文件名称.msi /qn[Version]
Signature= "$CHICAGO$"
AdvancedInf=2.0

    2.3. 定义makecab.bat

makecab.exe   /f   "cab.ddf"

    2.4. 执行makecab.bat就会生成CAB包

2. 签名

  1. 制作cer证书
    使用makecert.exe工具生成cer证书(工具在`C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin`)

cmd命令

makecert -r -n "CN=发行者名称" -b 01/01/2012 -e 01/01/2018 -sv 证书文件名称.pvk 证书文件名称.cer

    注意:执行命令后将弹出私钥密码对话框,可以设置或不设置私密。

  2. (可选项)将cer证书转换为spc证书
    使用cert2spc.exe工具(工具在`C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin`)

cmd命令

cert2spc cer证书文件名.cer spc证书文件名.spc

  3. 将cer证书转换为pfx证书
    使用pvk2pfx.exe工具将cer证书转换为pfx证书(PKCS#12证书及私钥)(工具在`C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin`)
    cmd命令格式:

pvk2pfx /pvk pvk证书文件名.pvk [/pi pvk证书密码] /spc cer或spc证书文件名.cer或spc [/pfx pfx证书名称.pfx] [/po pfx证书的私密] [/f]

说明:
  若第一步中,没有设置私钥,那么就`/pi pvk证书密码`就不用填写;
  若`/po pfx证书的私密`没有填写,那么pfx证书就使用与pvk证书一样的私钥;
  如果存在于-pfx指定的名称相同名称的文件,则需要使用`/f`来覆盖已有的.pfx文件。

示例,cmd:

pvk2pfx /pvk fsgmcc.pvk /pi gmcc123 /spc fsgmcc.cer /pfx fsgmcc.pfx  /f

  4. 通过signtool导入证书到cab的ActiveX文件
    signtool是vs2010的AuthentiCode签名工具(使用 PKCS#7标准定义的数据结构生成待签名文件的数字签名,并加入到待签名文件的PE结构中即可)。

cmd命令

signtool sign -f pfx证书文件名.pfx [-p pfx密码] ActiveX控件文件.CAB

示例:

signtool sign -f fsgmcc.pfx DirBrowser.CAB

三、总结                              

  这时ActiveX的发布工作已经完成,接下来请期待《.Net魔法堂:史上最全的ActiveX开发教程——部署篇》吧!

  尊重原创,转载时请注明来自:http://www.cnblogs.com/fsjohnhuang/p/3823402.html ^_^肥仔John

.Net魔法堂:史上最全的ActiveX开发教程——发布篇相关推荐

  1. .Net魔法堂:史上最全的ActiveX开发教程——部署篇

    一.前言 接<.Net魔法堂:史上最全的ActiveX开发教程--发布篇>,后我们继续来部署吧! 二. 挽起衣袖来部署   ActiveX的部署其实就是客户端安装ActiveX组件,对未签 ...

  2. 新手必看,史上最全的iOS开发教程集锦,没有之一!

    最近大火的iPhone XS Max和iPhone XS,不知道有没有同学已经下手了呢?一万三的价位确实让很多人望而却步啊.据说为了赢得中国的用户,专门出了双卡双待的,可想而知中国市场这块" ...

  3. 10_史上最全的Markdown使用教程(没有之一)(20190115)

    我用markdown写博客已经有半年之久了吧,但是还是会出现有些你想用的功能很难找,或者你尝试使用它不好使,为了帮助那些和我一样热衷于使用markdown的乘客,我决定自己造一架航班,让我们一起搭乘M ...

  4. 史上最全的FreeIPA搭建教程(二)

    如有疑问,请私信我!!!! 码字儿截图不容易啊 1.web后台使用教程 名字显示是反的,需要改成正确的 2.FreeIPA更新证书 默认的证书都是2年时间,到期不更新后果的就是所有账号都无法登录了 # ...

  5. 如果自己组装一个台式计算机有哪些,2015电脑组装教程:史上最全自己组装电脑教程...

    DIY电脑一直都是电脑爱好者非常喜欢的,电脑组装通常包括电脑硬件的选择,DIY硬件组装以及操作系统安装三个部分. 对于电脑爱好者来说,通过自己动手DIY组装电脑,不仅可以更为深刻的认识硬件,了解电脑主 ...

  6. 史上最全scrcpy投屏教程(用你的电脑控制手机)

    史上最全scrcpy投屏教程(用你的电脑控制手机) 一.下载投屏所需的资源 网址:scrcpy-win64-v1.17 提取码: yvid : 当然你也可以去github下载最新的或你所需要的资源,网 ...

  7. 史上最全vscode配置使用教程

    史上最全vscode配置使用教程 正在上传-重新上传取消 灰蓝宇墨 ​ 上海闪店联信息科技有限公司 前端工程师 5,041 人赞同了该文章 工欲善其事,必先利其器.想要优雅且高效的编写代码,必须熟练使 ...

  8. 史上最全的Android开发学习教程集锦【初学者】

    根据Google的报告,截止2017年5月为止,Android活跃用户已超过20亿,并还在持续增长中.Android系统在几个主要的市场上已超过了iOS系统,特别是在美国,欧洲和日本,然而苹果确实在中 ...

  9. agx 安装ros opencv_史上最全的OpenCV入门教程!这篇够你学习半个月了!万字长文入门...

    一.Python OpenCV 入门 欢迎阅读系列教程,内容涵盖 OpenCV,它是一个图像和视频处理库,包含 C ++,C,Python 和 Java 的绑定. OpenCV 用于各种图像和视频分析 ...

最新文章

  1. 俄罗斯智库 | 人工智能在军事领域的发展现状及应用前景
  2. 搭建本地,AWS和Azure之间的IPSec 连接
  3. Kprobe在Linux kernel debug中的应用
  4. javascript---》arguments对象
  5. C++中利用WebService下载文件
  6. JVM03Java代码执行流程
  7. Android官方开发文档Training系列课程中文版:高效显示位图之管理位图内存
  8. 25 FI配置-财务会计-定义冲销原因
  9. hibernate VS mybatis
  10. Modelsim-Altera仿真设置
  11. PYcharm简单安装教程
  12. centos7切换root为mysql_Linux(centos 7)系统下mysql8及以上版本修改root账户密码
  13. [面试] 算法(七)—— 逆序输出链表
  14. [NLP] 酒店名归类
  15. android内存泄漏MAT,利用Android Studio、MAT对Android进行内存泄漏检测
  16. php 标点符号,php怎么去除标点符号
  17. 智慧城管三维可视化决策系统平台(数字孪生)-解决方案开发案例
  18. 笔记本电脑插耳机后耳机无声音有外放情况,咋办??
  19. NFC应用(二)读写器模式
  20. 国内三大制式3G网络简介及比较

热门文章

  1. Linux: debian/ubuntu下安装和使用Java 11
  2. Java计算数学表达式(字符串形式)
  3. java jquery的定义方法_jQuery--基本语法
  4. 卡耐基梅隆大学计算机工程录取率,卡内基梅隆大学2020新生数据出炉!计算机学院录取率堪比藤校...
  5. sentinel安装
  6. oracle存档模式,Oracle开启归档模式并设置RMAN自动备份策略
  7. LNMP架构详解(1)——了解架构的基本信息
  8. 查找txt中的中文字符_找出nginx请求日志中某个url请求总次数排名前十的ip地址...
  9. blockly自定义中文出问题_3.8 事件 - Blockly 二次开发文档中文版
  10. windows 不安装jdk 运行 jar_新手必看。关于Python3——windows安装与运行(详细版)...