惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 置身珠海,学习与奋斗

【转】WPF获取路径解读 善用Wink,将电脑操作录屏为flash (更新图片) [转]ClickOnce部署出现 系统必备的安装位置未设置为组件供应商的网站,无法在磁盘上找到 dotNetFx40LP_Client_x86_x64cs.exe 问题的解决方案 D60 单反相机拍照后,反光板无法正常弹回,报错的解决办法。 关于ListBox绑定到自定义对象 VS 全部补丁包(20100730) 和谐UAC与应用程序配置,抛砖引玉,希望完美解决问题。 论企业信息化的三个阶段:技,术,道 中国式管理 Virtual PC 2007 虚拟网络配置 红旗飘扬 关于 Winform 下 ReportViewer 打印异常 咱也写个小写数字转大写金额 ,纯粹字符串操作实现 中国人成功十要 有没有朋友做过动态表结构的,请教一下 自定义app_offline.htm,让网站升级提示更专业 使用PPC的朋友慎用 星空极速3.2.070416_GD 关于89S51单片机数码管显示的小工具 重新启动IIS的小工具
关于ClickOnce在企业内部的应用
置身珠海,学习与奋斗 · 2009-03-15 · via 博客园 - 置身珠海,学习与奋斗

ClickOnce 部署概述

ClickOnce 是一种部署技术,使用该技术可创建自行更新的基于 Windows 的应用程序,这些应用程序可以通过最低程度的用户交互来安装和运行。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 应用程序运行在 Internet 或 Intranet 安全区域中。如果有必要,应用程序可以请求提升的安全权限。

ClickOnce 部署的工作方式

核心 ClickOnce 部署结构基于两个 XML 清单文件:一个应用程序清单和一个部署清单。

应用程序清单描述应用程序本身,包括程序集、组成应用程序的依赖项和文件、所需的权限以及提供更新的位置。应用程序开发人员使用 Visual Studio 2005 中的发布向导或 .NET Framework SDK 中的清单生成工具 (Mage.exe) 来创作应用程序清单。

部署清单描述如何部署应用程序,包括应用程序清单的位置以及客户端应运行的应用程序的版本。管理员使用 .NET Framework SDK 中的清单生成工具 (Mage.exe) 来创作部署清单。

Microsoft Visual Studio 2005 中的“发布向导”也可生成部署清单。

Note注意

部署清单在创建后会被复制到部署位置。部署位置可以是 Web 服务器、网络文件共享或媒体(如 CD)。应用程序清单和所有应用程序文件也都被复制到在部署清单中指定的一个部署位置。此位置可以与部署清单的部署位置相同,也可以不同。使用 Microsoft Visual Studio 2005 中的“发布向导”时,复制操作是自动执行的。

如果开发人员同时也是管理员(即开发人员在将要部署部署清单的网站或文件共享位置具有管理员特权),则只需要此清单即可。如果开发人员不是管理员,则必须由管理员使用命令行工具更新清单并对清单进行签名。

Note注意

当部署清单被部署到部署位置后,最终用户可以在网页上或文件夹中单击表示部署清单文件的图标,从而下载和安装应用程序。在大多数情况下,会向最终用户提供一个简单的对话框以请用户确认安装,在此之后便不需要进一步的用户干预,安装会继续执行且应用程序会被启动。在应用程序要求提升的权限的情况下,该对话框还会请用户在安装继续进行之前授予相应权限。

应用程序会被添加到用户的“开始”菜单和“控制面板”中的“添加/删除程序”组中。与其他部署技术不同,此部署技术不会向“Program Files”文件夹、注册表和桌面添加任何内容,且安装无需任何管理员权限

也可以禁止将应用程序添加到“开始”菜单和“添加/删除程序”组中,其效果是使应用程序的行为与 Web 应用程序相类似。

Note注意

当应用程序开发人员创建更新版本的应用程序时,开发人员也会生成新的应用程序清单,并将文件复制到一个部署位置 -- 通常是原始应用程序部署文件夹的同级文件夹。管理员会更新部署清单,使之指向新版本的应用程序所在的位置。

可以使用 Microsoft Visual Studio 2005 中的“发布向导”执行这些步骤。

Note注意

除部署位置外,部署清单还包含应用程序在其中检查更新版本的更新位置(一个网页或网络文件共享)。ClickOnce 的“Publish”属性用于指定应用程序检查更新的时间和频率。更新行为可以在部署清单中指定,也可以通过 ClickOnce API 在应用程序的用户界面中以用户选项的形式提供。此外,“Publish”属性还可以用于将更新设置为强制性的,或是用于将应用程序回滚到较早版本。

ClickOnce 和 Windows Installer 比较表

下表将 ClickOnce 部署的功能与 Windows Installer 部署的功能进行了比较:

自动更新1

安装后回滚2

从 Web 更新

不影响共享组件或其他应用程序

授予的安全权限

仅授予应用程序所必需的权限(更安全)

默认授予“完全信任”权限(不够安全)

要求的安全权限

Internet 或 Intranet 区域(为 CD-ROM 安装提供完全信任)

管理员

应用程序和部署清单签名

安装时用户界面

单次提示

多部分向导

即需安装程序集

安装共享文件

安装驱动程序

是(自定义操作)

安装到全局程序集缓存

为多个用户安装

向“开始”菜单添加应用程序

向“启动”组添加应用程序

向“收藏夹”菜单添加应用程序

注册文件类型

安装时注册表访问3

受限

二进制文件修补

应用程序安装位置

ClickOnce 应用程序缓存

“Program Files”文件夹

功能 ClickOnce Windows Installer

说明

1. 对于 Windows Installer,必须在应用程序代码中实现编程方式的更新。

2. 对于 ClickOnce,可在“添加/删除程序”中实现回滚。

3. ClickOnce 部署只有使用“完全信任”权限才能访问 HKEY_LOCAL_MACHINE (HKLM)。