ClickOnce

可創建自行更新程序的部署技術

ClickOnce 是一種部署技術,使用該技術可創建自行更新的基於 Windows 的應用程序,這些應用程序可以通過最低程度的用戶交互來安裝和運行。

主要問題


ClickOnce
ClickOnce
ClickOnce 部署克服了部署中所固有的三個主要問題:
更新應用程序的困難
使用 Microsoft Windows Installer 部署,每次應用程序更新,用戶都必須重新安裝整個應用程序;使用 ClickOnce 部署,則可以自動提供更新。只有更改過的應用程序部分才會被下載,然後從新的并行文件夾重新安裝完整的、更新后的應用程序。
對用戶的計算機的影響
使用 Windows Installer 部署時,應用程序通常依賴於共享組件,這便有可能發生版本衝突;而使用 ClickOnce 部署時,每個應用程序都是獨立的,不會幹擾其他應用程序。
安全許可權
Windows Installer 部署要求管理員許可權並且只允許受限制的用戶安裝;而 ClickOnce 部署允許非管理用戶安裝應用程序並僅授予應用程序所需要的那些代碼訪問安全許可權。
過去,這些問題有時會使開發人員決定創建 Web 應用程序而不是基於 Windows 的應用程序,為便於安裝而犧牲了 Windows窗體豐富的用戶界面和響應性。對於使用 ClickOnce 部署的應用程序,您可以集這兩種技術的優勢於一身。

應用程序


什麼是 ClickOnce 應用程序?
簡單說來,ClickOnce 應用程序就是任何使用 ClickOnce 技術發布的 Windows窗體或控制台應用程序。可以採用三種不同的方法發布 ClickOnce 應用程序:從網頁發布、從網路文件共享發布或是從媒體(如 CD-ROM)發布。ClickOnce 應用程序既可以安裝在最終用戶的計算機上並在本地運行(即使當計算機離線時也可以運行),也可以僅以聯機模式運行,而不在最終用戶的計算機上永久安裝任何內容。有關更多信息,請參見選擇 ClickOnce 部署策略。
ClickOnce 應用程序可以自行更新;這些應用程序可以在較新版本變為可用時檢查較新版本,並自動替換所有更新的文件。開發人員可以指定更新行為;網路管理員也可以控制更新策略,如將更新標記為強制性的。最終用戶或管理員還可以對更新進行回滾,使應用程序恢復到早期的版本。
因為 ClickOnce 應用程序在本質上是被隔離的,所以安裝或運行 ClickOnce 應用程序不會幹擾現有的應用程序。ClickOnce 應用程序是完全獨立的;每個 ClickOnce 應用程序都安裝到一個安全的基於每個用戶、每個應用程序的緩存中,並從該緩存運行。默認情況下,ClickOnce 應用程序運行在 Internet 或 Intranet 安全區域中。如果有必要,應用程序可以請求提升的安全許可權。
ClickOnce 部署 客戶端點"安裝"后無反應的處理辦法:
ClickOnce 部署方式在客戶端是由此文件支持的dfshim.dll.. 在.net 2.0 framework 安裝時,與 .application文件類型相關聯... 瀏覽器在下載 .application文件后,會由 dfshim.dll交由 dfsvc.exe 打開,我們就會看到ClickOnce的安裝界面了.....
因此:若出現客戶端點“安裝”沒有任何反應的情況,我們可以使用右鍵另存為功能下載 .application文件,然後選中.application文件使用右鍵 打開方式 選擇 dfsvc.exe 打開此文件,即可進行客戶端的安裝....

工作方式


核心 ClickOnce 安全基於證書、代碼訪問安全性策略和 ClickOnce 信任提示。
證書
Authenticode 證書用於驗證應用程序發布者的真實性。
通過將 Authenticode 用於應用程序部署,ClickOnce 可幫助防止有害程序將自己偽裝成來自已確定的可信任源的合法程序。 (可選)證書也可以用於為應用程序和部署清單簽名,以證明文件未被篡改。有關更多信息,請參見ClickOnce 和 Authenticode。證書還可以用於為客戶端計算機配置一個受信任的發布者的列表。如果某個應用程序來自受信任的發布者,則可以在無需任何用戶交互的情況下安裝該應用程序。有關更多信息,請參見受信任的應用程序部署概述。
代碼訪問安全性
代碼訪問安全性可幫助限制代碼對受保護資源的訪問。
大多數情況下,您可以選擇 Internet 區域和本地 Intranet 區域來限制許可權。使用“項目設計器”中的“安全性”頁可以請求適合於應用程序的區域。您也可以使用受限許可權調試應用程序來模擬最終用戶的體驗。有關更多信息,請參見ClickOnce 應用程序的代碼訪問安全性。
ClickOnce 信任提示
如果應用程序請求的許可權超出區域的允許範圍,則會提示最終用戶做出信任決定。
最終用戶可以決定是否信任 ClickOnce 應用程序(如 Windows Forms 應用程序、Windows Presentation Foundation 應用程序、控制台應用程序、XAML 瀏覽器應用程序和 Office 解決方案)以允許其運行。有關更多信息,請參見如何:配置 ClickOnce 信任提示行為。