ClickOnce 部署概述
http://msdn.microsoft.com/zh-cn/library/142dbbz4(v=vs.80).aspx
ClickOnce 部署概述
.NET Framework 2.0 其他版本- Visual Studio 2008
- .NET Framework 3.0
- .NET Framework 3.5
ClickOnce 是一種部署技術(shù),使用該技術(shù)可創(chuàng)建自行更新的基于 Windows 的應(yīng)用程序,這些應(yīng)用程序可以通過(guò)最低程度的用戶(hù)交互來(lái)安裝和運(yùn)行。ClickOnce 部署克服了部署中所固有的三個(gè)主要問(wèn)題:
-
更新應(yīng)用程序的困難。 使用 Microsoft Windows Installer 部署,每次應(yīng)用程序更新,用戶(hù)都必須重新安裝整個(gè)應(yīng)用程序;使用 ClickOnce 部署,則可以自動(dòng)提供更新。只有更改過(guò)的應(yīng)用程序部分才會(huì)被下載,然后從新的并行文件夾重新安裝完整的、更新后的應(yīng)用程序。
-
對(duì)用戶(hù)的計(jì)算機(jī)的影響。 使用 Windows Installer 部署時(shí),應(yīng)用程序通常依賴(lài)于共享組件,這便有可能發(fā)生版本沖突;而使用 ClickOnce 部署時(shí),每個(gè)應(yīng)用程序都是獨(dú)立的,不會(huì)干擾其他應(yīng)用程序。
-
安全權(quán)限。 Windows Installer 部署要求管理員權(quán)限并且只允許受限制的用戶(hù)安裝;而 ClickOnce 部署允許非管理用戶(hù)安裝應(yīng)用程序并僅授予應(yīng)用程序所需要的那些代碼訪(fǎng)問(wèn)安全權(quán)限。
過(guò)去,這些問(wèn)題有時(shí)會(huì)使開(kāi)發(fā)人員決定創(chuàng)建 Web 應(yīng)用程序而不是基于 Windows 的應(yīng)用程序,為便于安裝而犧牲了 Windows 窗體豐富的用戶(hù)界面和響應(yīng)性。對(duì)于使用 ClickOnce 部署的應(yīng)用程序,您可以集這兩種技術(shù)的優(yōu)勢(shì)于一身。
什么是 ClickOnce 應(yīng)用程序?
簡(jiǎn)單說(shuō)來(lái),ClickOnce 應(yīng)用程序就是任何使用 ClickOnce 技術(shù)發(fā)布的 Windows 窗體或控制臺(tái)應(yīng)用程序。可以采用三種不同的方法發(fā)布 ClickOnce 應(yīng)用程序:從網(wǎng)頁(yè)發(fā)布、從網(wǎng)絡(luò)文件共享發(fā)布或是從媒體(如 CD-ROM)發(fā)布。ClickOnce 應(yīng)用程序既可以安裝在最終用戶(hù)的計(jì)算機(jī)上并在本地運(yùn)行(即使當(dāng)計(jì)算機(jī)脫機(jī)時(shí)也可以運(yùn)行),也可以?xún)H以聯(lián)機(jī)模式運(yùn)行,而不在最終用戶(hù)的計(jì)算機(jī)上永久安裝任何內(nèi)容。有關(guān)更多信息,請(qǐng)參見(jiàn)選擇 ClickOnce 部署策略。
ClickOnce 應(yīng)用程序可以自行更新;這些應(yīng)用程序可以在較新版本變?yōu)榭捎脮r(shí)檢查較新版本,并自動(dòng)替換所有更新的文件。開(kāi)發(fā)人員可以指定更新行為;網(wǎng)絡(luò)管理員也可以控制更新策略,如將更新標(biāo)記為強(qiáng)制性的。最終用戶(hù)或管理員還可以對(duì)更新進(jìn)行回滾,使應(yīng)用程序恢復(fù)到早期的版本。有關(guān)更多信息,請(qǐng)參見(jiàn)選擇 ClickOnce 更新策略。
因?yàn)?ClickOnce 應(yīng)用程序在本質(zhì)上是被隔離的,所以安裝或運(yùn)行 ClickOnce 應(yīng)用程序不會(huì)干擾現(xiàn)有的應(yīng)用程序。ClickOnce 應(yīng)用程序是完全獨(dú)立的;每個(gè) ClickOnce 應(yīng)用程序都安裝到一個(gè)安全的基于每個(gè)用戶(hù)、每個(gè)應(yīng)用程序的緩存中,并從該緩存運(yùn)行。默認(rèn)情況下,ClickOnce 應(yīng)用程序運(yùn)行在 Internet 或 Intranet 安全區(qū)域中。如果有必要,應(yīng)用程序可以請(qǐng)求提升的安全權(quán)限。有關(guān)更多信息,請(qǐng)參見(jiàn) ClickOnce 部署和安全。
ClickOnce 部署的工作方式
核心 ClickOnce 部署結(jié)構(gòu)基于兩個(gè) XML 清單文件:一個(gè)應(yīng)用程序清單和一個(gè)部署清單。
應(yīng)用程序清單描述應(yīng)用程序本身,包括程序集、組成應(yīng)用程序的依賴(lài)項(xiàng)和文件、所需的權(quán)限以及提供更新的位置。應(yīng)用程序開(kāi)發(fā)人員使用 Visual Studio 2005 中的發(fā)布向?qū)Щ?.NET Framework SDK 中的清單生成工具 (Mage.exe) 來(lái)創(chuàng)作應(yīng)用程序清單。有關(guān)更多信息,請(qǐng)參見(jiàn)如何:發(fā)布 ClickOnce 應(yīng)用程序。
部署清單描述如何部署應(yīng)用程序,包括應(yīng)用程序清單的位置以及客戶(hù)端應(yīng)運(yùn)行的應(yīng)用程序的版本。管理員使用 .NET Framework SDK 中的清單生成工具 (Mage.exe) 來(lái)創(chuàng)作部署清單。
| Microsoft Visual Studio 2005 中的“發(fā)布向?qū)А币部缮刹渴鹎鍐巍?/p> |
部署清單在創(chuàng)建后會(huì)被復(fù)制到部署位置。部署位置可以是 Web 服務(wù)器、網(wǎng)絡(luò)文件共享或媒體(如 CD)。應(yīng)用程序清單和所有應(yīng)用程序文件也都被復(fù)制到在部署清單中指定的一個(gè)部署位置。此位置可以與部署清單的部署位置相同,也可以不同。使用 Microsoft Visual Studio 2005 中的“發(fā)布向?qū)А睍r(shí),復(fù)制操作是自動(dòng)執(zhí)行的。
| 如果開(kāi)發(fā)人員同時(shí)也是管理員(即開(kāi)發(fā)人員在將要部署部署清單的網(wǎng)站或文件共享位置具有管理員特權(quán)),則只需要此清單即可。如果開(kāi)發(fā)人員不是管理員,則必須由管理員使用命令行工具更新清單并對(duì)清單進(jìn)行簽名。 |
當(dāng)部署清單被部署到部署位置后,最終用戶(hù)可以在網(wǎng)頁(yè)上或文件夾中單擊表示部署清單文件的圖標(biāo),從而下載和安裝應(yīng)用程序。在大多數(shù)情況下,會(huì)向最終用戶(hù)提供一個(gè)簡(jiǎn)單的對(duì)話(huà)框以請(qǐng)用戶(hù)確認(rèn)安裝,在此之后便不需要進(jìn)一步的用戶(hù)干預(yù),安裝會(huì)繼續(xù)執(zhí)行且應(yīng)用程序會(huì)被啟動(dòng)。在應(yīng)用程序要求提升的權(quán)限的情況下,該對(duì)話(huà)框還會(huì)請(qǐng)用戶(hù)在安裝繼續(xù)進(jìn)行之前授予相應(yīng)權(quán)限。
應(yīng)用程序會(huì)被添加到用戶(hù)的“開(kāi)始”菜單和“控制面板”中的“添加/刪除程序”組中。與其他部署技術(shù)不同,此部署技術(shù)不會(huì)向“Program Files”文件夾、注冊(cè)表和桌面添加任何內(nèi)容,且安裝無(wú)需任何管理員權(quán)限
| 也可以禁止將應(yīng)用程序添加到“開(kāi)始”菜單和“添加/刪除程序”組中,其效果是使應(yīng)用程序的行為與 Web 應(yīng)用程序相類(lèi)似。有關(guān)更多信息,請(qǐng)參見(jiàn)選擇 ClickOnce 部署策略。 |
當(dāng)應(yīng)用程序開(kāi)發(fā)人員創(chuàng)建更新版本的應(yīng)用程序時(shí),開(kāi)發(fā)人員也會(huì)生成新的應(yīng)用程序清單,并將文件復(fù)制到一個(gè)部署位置 -- 通常是原始應(yīng)用程序部署文件夾的同級(jí)文件夾。管理員會(huì)更新部署清單,使之指向新版本的應(yīng)用程序所在的位置。
| 可以使用 Microsoft Visual Studio 2005 中的“發(fā)布向?qū)А眻?zhí)行這些步驟。 |
除部署位置外,部署清單還包含應(yīng)用程序在其中檢查更新版本的更新位置(一個(gè)網(wǎng)頁(yè)或網(wǎng)絡(luò)文件共享)。ClickOnce 的“Publish”屬性用于指定應(yīng)用程序檢查更新的時(shí)間和頻率。更新行為可以在部署清單中指定,也可以通過(guò) ClickOnce API 在應(yīng)用程序的用戶(hù)界面中以用戶(hù)選項(xiàng)的形式提供。此外,“Publish”屬性還可以用于將更新設(shè)置為強(qiáng)制性的,或是用于將應(yīng)用程序回滾到較早版本。有關(guān)更多信息,請(qǐng)參見(jiàn)選擇 ClickOnce 更新策略。
ClickOnce 和 Windows Installer 比較表
下表將 ClickOnce 部署的功能與 Windows Installer 部署的功能進(jìn)行了比較:
| 自動(dòng)更新1 | 是 | 是 |
| 安裝后回滾2 | 是 | 否 |
| 從 Web 更新 | 是 | 否 |
| 不影響共享組件或其他應(yīng)用程序 | 是 | 否 |
| 授予的安全權(quán)限 | 僅授予應(yīng)用程序所必需的權(quán)限(更安全) | 默認(rèn)授予“完全信任”權(quán)限(不夠安全) |
| 要求的安全權(quán)限 | Internet 或 Intranet 區(qū)域(為 CD-ROM 安裝提供完全信任) | 管理員 |
| 應(yīng)用程序和部署清單簽名 | 是 | 否 |
| 安裝時(shí)用戶(hù)界面 | 單次提示 | 多部分向?qū)?/p> |
| 即需安裝程序集 | 是 | 否 |
| 安裝共享文件 | 否 | 是 |
| 安裝驅(qū)動(dòng)程序 | 否 | 是(自定義操作) |
| 安裝到全局程序集緩存 | 否 | 是 |
| 為多個(gè)用戶(hù)安裝 | 否 | 是 |
| 向“開(kāi)始”菜單添加應(yīng)用程序 | 是 | 是 |
| 向“啟動(dòng)”組添加應(yīng)用程序 | 否 | 是 |
| 向“收藏夾”菜單添加應(yīng)用程序 | 否 | 是 |
| 注冊(cè)文件類(lèi)型 | 否 | 是 |
| 安裝時(shí)注冊(cè)表訪(fǎng)問(wèn)3 | 受限 | 是 |
| 二進(jìn)制文件修補(bǔ) | 否 | 是 |
| 應(yīng)用程序安裝位置 | ClickOnce 應(yīng)用程序緩存 | “Program Files”文件夾 |
說(shuō)明
1. 對(duì)于 Windows Installer,必須在應(yīng)用程序代碼中實(shí)現(xiàn)編程方式的更新。
2. 對(duì)于 ClickOnce,可在“添加/刪除程序”中實(shí)現(xiàn)回滾。
3. ClickOnce 部署只有使用“完全信任”權(quán)限才能訪(fǎng)問(wèn) HKEY_LOCAL_MACHINE (HKLM)。
有關(guān)更多信息,請(qǐng)參見(jiàn)選擇部署策略。
請(qǐng)參見(jiàn)
任務(wù)
如何:發(fā)布 ClickOnce 應(yīng)用程序
概念
選擇 ClickOnce 部署策略
選擇 ClickOnce 更新策略
ClickOnce 部署和安全
選擇部署策略
其他資源
ClickOnce 部署
?
===============
http://superuser.com/questions/363761/does-a-windows-clickonce-application-have-to-connect-to-the-internet
| ClickOnce applications check the developer's website when they start up to see if there's a more recent version available. If there is, it will offer to download the updated version and install it for you. This automatic updating is one of the key benefits to ClickOnce applications. If you don't have Internet access you can still run the program, but obviously it won't update unless you are connected. I suppose there may be a short delay while it attempts to connect to the server and fails, but it shouldn't be a long one. Another common ClickOnce application is the MetroTwit Twitter application: http://www.metrotwit.com/
| |||||||
| ? |
|
| up vote 2 down vote | Scott Bussinger's answer is mostly correct, and it's certainly accurate from your perspective. However, in regards to your question as it is asked by the title, no, not all ClickOnce applications need the internet, in order to be both installed and updated. A ClickOnce application can be installed from an local Intranet location. The difference may seem subtle and it doesn't matter in your case. However, it was worth fully answering your question since the StackOverflow network is highly indexed by Google and often cross referenced on the web. Other user's with the same question but if their reasons are different, this information might be pertinent. |
?
總結(jié)
以上是生活随笔為你收集整理的ClickOnce 部署概述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用Eclipse构建Maven的Spr
- 下一篇: 用Artifactory管理内部Mave