• .Net魔法堂:史上最全的ActiveX开发教程——发布篇


    一、 前言                              

       接着上一篇《.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 FilesMicrosoft SDKsWindowsv7.0Ain`)

    cmd命令

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

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

      2. (可选项)将cer证书转换为spc证书
        使用cert2spc.exe工具(工具在`C:Program FilesMicrosoft SDKsWindowsv7.0Ain`)

    cmd命令

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

      3. 将cer证书转换为pfx证书
        使用pvk2pfx.exe工具将cer证书转换为pfx证书(PKCS#12证书及私钥)(工具在`C:Program FilesMicrosoft SDKsWindowsv7.0Ain`)
        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

  • 相关阅读:
    HHHOJ #153. 「NOI模拟 #2」Kotomi
    HHHOJ #151. 「NOI模拟 #2」Nagisa
    Luogu P5298 [PKUWC2018]Minimax
    Luogu P5368 [PKUSC2018]真实排名
    Luogu P5408 【模板】第一类斯特林数·行
    Codechef December Challenge 2019 Division 1
    AtCoder Grand Contest 040
    CSP2019游记(翻车记)
    Codeforces Round #594 (Div. 1)
    AtCoder Grand Contest 039
  • 原文地址:https://www.cnblogs.com/fsjohnhuang/p/3823402.html
Copyright © 2020-2023  润新知