VS 2010 開發 ActiveX 自動升級篇

ActiveX 控件自動升級

1. 修改 ActiveXDemo 及其所依賴項目的版本信息


2. 爲 ActiveXDemo 創建安裝項目 ActiveXDemo.Setup

3. 選擇 ActiveXDemo.Setup 項目,爲其設置屬性


4. 選擇主輸出文件,爲其設置屬性


5. 右鍵 ActiveXDemo.Setup 項目 --> View --> Registry


6. 在 HKEY_CLASSES_ROOT下創建 CLSID/{ActiveX控件的GUID}/InstalledVersion
7. 在 InstalledVersion 下新建字符串值,設置 Value 爲“1,3,1,0“,刪除 (Name) 中的值


8. Build ActiveXDemo.Setup 項目
9. 使用生成的 ActiveXDemo.Setup.msi 製作 cab 包
10. 修改 Html 頁面代碼,需要注意 codebase 中的內容

    1) cab 包的路徑
    2) cab 包的版本號(爲第六步中設置的 Value 值),版本號之間用逗號隔開
    3) codebase 的內容格式

<object id="infoViewer" classid="clsid:B3BCD23C-53EE-4661-83E0-559E5D022514" codebase="ActiveXDemo.cab#version=1,3,1,0">
</object>
<input type='button' οnclick='infoViewer.Alert("Hello")' value='Click Me'>

ActiveX 控件的升級更新包括兩部分


cab 包的升級
cab 包的版本爲 HTM L代碼中 codebase 的版本,在每次加載 ActiveX 控件時,系統會用這個版本號和 Registry 中的 InstalledVersion 值(即上面第6、7步設置的值,會在 msi 包安裝的時候寫入註冊表,如果沒有在安裝項目中寫入 InstalledVersion 的值,則默認是 .NET Framework 的版本號)進行比較,如果發現 codebase 中的版本號較新,則會下載新的 cab 包並更新。

msi 包的升級
msi 包的版本爲其生成項目的版本(項目 --> 屬性 --> 版本),如果 cab 包中 msi 包的版本號低於已安裝的版本號,在執行 msi 時會失敗,只有較新時纔會繼續安裝,安裝過程中,如果其中 dll 的版本號和已安裝的 dll 版本號相同或較低,已安裝的 dll 不會被更新升級,所以在程序有改動的情況下,務必改動項目的版本號。

發佈了61 篇原創文章 · 獲贊 4 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章