clickonce是一項部署技術,它能夠讓你建立基於windows作業系統並能自動更新的應用程式,同時在安裝過程中,可以將使用者需要進行的互動降到最低。clickonce部署克服了在部署過程中存在的以下三個主要問題:
對使用者計算機的影響。使用microsoft windows installer進行部署,應用程式通常需要使用一些共享的元件,這樣就帶來了潛在的版本衝突的風險;如果使用clickonce進行部署,每乙個應用程式都是自包含的,不會隨便使用其他應用程式的內容。
安全許可。使用microsoft windows installer進行部署,需要管理員許可權,這樣只能允許有限的使用者進行安裝;使用clickonce進行部署,能夠讓沒有管理員許可權的使用者安裝應用程式,同時可以保證那些擁有**訪問安全許可的使用者才能使用應用程式。
在過去,開發者有時會因為上述三個原因,決定拋棄windows的應用程式,轉而建立web應用程式,這樣為了簡化安裝過程,而犧牲了豐富的使用者介面以及良好的效能。通過使用clickonce部署程式,一方面簡化安裝過程,另一方面,可以保留豐富的使用者介面,可以魚和熊掌兼得。
什麼是clickonce應用程式?
clickonce應用程式可以自動更新,當應用程式檢測到有新版本後,就會自動替換任何需要更新的檔案。開發者可以指定更新行為,網路管理員也可以控制更新的策略,例如,強制更新。終端使用者或者管理員還可以使用更新將應用程式回滾到之前的某乙個版本。
因為clickonce應用程式是被隔離的,因此安裝或者執行乙個clickonce應用程式並不會對已有程式造成影響。clickonce應用程式時自包含的。每乙個clickonce應用程式都會安裝到乙個按照使用者和應用程式進行劃分的安全的快取中,然後從快取中執行該程式。預設情況下,clickonce應用程式執行在internet或者intranet安全區域內。如果有必要,應用程式可以要求額外的安全許可。
clickonce部署如何工作
clickonce部署架構的核心是基於兩種xml清單檔案:應用程式清單和部署清單。
應用程式清單描述了應用程式本身,包括程式集、依賴關係以及組成應用程式的那些檔案、必需的許可、以及軟體更新時需要訪問的位址等。應用程式開發者可以使用visual sutdio 2008中的發布嚮導或者windows sdk中的清單生成工具(mage.exe)生成應用程式清單。
部署清單描述了應用程式是如何部署的,包括應用程式清單的位置、客戶端在執行程式時應該使用的版本等。管理員可以通過windows sdk中的清單生成工具(mage.exe)來建立部署清單。
注:visual studio 2005中的部署嚮導工具同時也會生成乙個部署清單。
在清單建立完成後,部署清單會被複製到部署位置上,這可以是乙個web伺服器、網路共享目錄或者諸如光碟等**,應用程式清單和應用程式包含的所有檔案也會被複製到部署清單中指定個乙個部署位置上。這兩個位置可以是一樣的,也可以不一樣。當我們使用microsoft visual studio 2005發布嚮導時,上面描述的複製操作會自動執行。
注:如果開發者同時也是管理員(或者說,擁有部署清單將要部署的web站點或者共享檔案的管理許可權),那麼只需要這個清單;如果開發者不是管理員,那麼管理員必須使用命令列工具來對清單進行更新和簽名。
應用程式會被新增到使用者的開始選單中,也會新增到控制面板中的新增/刪除應用程式中,和其他部署技術不同,clickonce技術不會向program files目錄、登錄檔或者桌面中新增任何內容,同時在安裝過程中並不需要管理員的許可權。
注:我們也可以阻止應用程式新增到開始選單或者新增/刪除應用程式中,這樣看起來就像是乙個web應用程式。
當應用程式開發者建立了乙個版本更新了的應用程式,他或者她應該生成乙個新的應用程式清單,同時將其複製到部署位置——通常是和之前應用程式部署目錄同級的乙個資料夾。然後管理員更新部署清單,將其指向新版本應用程式所在的位置。
注:我們可以使用microsoft visual studio 2005中的發布嚮導工具完成這些工作。
部署清單中除了部署位置之外,還應該包含乙個更新位置(web頁面或者網路共享目錄),應用程式通過訪問該位置來檢查是否需要更新。clickonce 的publish屬性用於指定應用程式檢查版本的頻率。更新行為可以在部署清單中指定,或者可以通過clickonce提供的api,為使用者提供乙個介面,讓使用者選擇。另外,publish屬性還可以設定強制更新或者將程式回滾到之前的某個版本中。
clickonce技術和windows installer技術之間的比較
特點clickonce
windows installer
自動更新是是
安裝後回滾是否
從web更新是否
不影響共享元件或者其他應用程式是否
安全許可
只保證針對應用程式必要的許可(更安全)
預設情況下,完全信任(安全性低
必需的安全許可
internet或者intranet區域(對於光碟機安裝來說,就是完全信任)
管理員應用程式清單和部署清單簽名是否
安裝時使用者介面
簡單的命令列
多部分嚮導組成
按需安裝程式集是否
安裝共享檔案否是
安裝驅動程式
否是(通過自定義操作完成)
安裝到gac中否是
將應用程式新增到開始選單中是是
將應用程式新增到啟動組中否是
將應用程式新增到收藏夾選單中否是
登錄檔檔案型別否是
安裝時訪問登錄檔受限是
二進位制檔案形式否是
應用程式安裝位置
clickonce應用程式快取
program files資料夾
譯 ClickOnce部署概述
clickonce是一項部署技術,它能夠讓你建立基於windows作業系統並能自動更新的應用程式,同時在安裝過程中,可以將使用者需要進行的互動降到最低。clickonce部署克服了在部署過程中存在的以下三個主要問題 對使用者計算機的影響。使用microsoft windows installer進行...
簡譯 WPF概述
回顧過去 早期基於 windows 使用者介面的主要技術是 gdi和 user 子系統,它們早在 1985 年就由windows 1.0 引入了。這些技術現在已經過時了。在 1990 年,sgi 建立了流行的圖形庫 opengl 它可以用於高階2d和 3d圖形的開發。人們使用它建立 cad和虛擬科學...
獲取使用ClickOnce部署的應用程式的版本號
在編寫使用clickonce部署的應用程式時,需要在程式的標題欄 軟體變更記錄 軟體關於等頁面讀取顯示當前的版本號。之前很傻瓜的做法就是在resource中維護乙個string值,在使用到的地方讀取,有更新修改resource即可。其實這樣做也有乙個好處,就是自己可以控制需要顯示的版本號,版本資訊顯...