1、 前言 html
接着上一篇《.Net魔法堂:史上最全的ActiveX開發教程——開發篇》,本篇講述如何發佈咱們的ActiveX。瀏覽器
2、廢話少講,立刻看步驟! 數據結構
1. 打包工具
C#開發的Activex不像`OCX`那樣直接經過`regsvr32.exe`註冊,而採用兩種方式發佈使其運行在瀏覽器上。
1. 離線安裝:將控件類庫打包成MSI安裝包,而後在客戶端安裝。
1.1. 添加安裝項目spa
1.2. 右鍵「添加」->「項目輸出」,選擇ActiveX控件爲「主輸出」code
1.3. 雙擊「解決方案資源管理器」的「檢測到的依賴項」下的 Microsoft.NET Framework 並修改「啓動條件」下 .NET Framework 的Version爲.NET Framework2.0 htm
1.4. 修改「主輸出來自XXX」的 Register 屬性爲 vsdrpCOMblog
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
3、總結
這時ActiveX的發佈工做已經完成,接下來請期待《.Net魔法堂:史上最全的ActiveX開發教程——部署篇》吧!
尊重原創,轉載時請註明來自:http://www.cnblogs.com/fsjohnhuang/p/3823402.html ^_^肥仔John