ClickOnce部署(1):一些发布方式
ClickOnce是什么玩意儿,这个问题嘛,在21世纪的互联网严重发达的时代,估计也没有必要大费奏章去介绍了,弄不好的话,还有抄袭之嫌。因此,有关ClickOnce的介绍,各位朋友可以直接查找MSDN文档,或者看下面这里,这是百度百科上的,其实也是Ctrl + C版本。http://baike.baidu.com/view/1390498.htm
如果你对这些理论的东西不感兴趣,没关系,上面所提及的内容你完全可以无视之。我们只要知道,ClickOnce是一种应用程序部署方式即可。那什么是部署呢? 我们不妨查一查词典,部署的释义为安排、布置等,而放到我们的应用程序来说,我们通俗的叫法就是安装。即把你开发好的应用程序布置到客户的计算机上,或者说安装到客户的计算机上,这就是部署。
所以我们可以说ClickOnce应用程序就是一类安装包装,它可以一步到位进行安装,而不像我们所使用的传统安装包那样,要N个"下一步",然后才是完成。
也许有人也说,发布ClickOnce包不是很简单吗? 在VS里面点几下鼠标就完事了吗? 你还拿来写博客干吗? 首先,法律并没有规定简单的东西不能拿来写博客;其次,对于许多初学者朋友来说,我想是有参考价值,至少会有;再者,有些小问题可能大家经常会忽略的。
我们先来发布一个Windows Forms应用程序,练练手。
准备条件:先确保安装了IIS,如果没有,就赶紧动手吧,因为下面我们要做的例子,是把ClickOnce同时发布到本地文件和IIS服务器上的。至于如何安装,请Search the Internet吧。
- 以管理员身份运行VS。新建一个Windows窗体应用程序项目。
- 把窗口的标题(Text属性)改成你要的标题,我这里改为"宇宙无敌应用程序"。然后再拖一个Label控件,把文本改为"超级应用,天下无敌。"。大概就如下图所示。是不是很霸气?

- 好了,就这样吧,够简单,这就是我们待会儿要发布的应用程序。
- 好,开始发布ClickOnce安装程序。打开"解决方案资源管理器",在项目节点上右击,从弹出的快捷菜单中选择【属性】,打开项目属性窗口,切换到"发布"选项卡。

- 如下图所示,有两个发布位置。

发布位置可以选择本地文件夹,也可以选择IIS上的Web服务器地址,当然FTP也行。这两个地方也没什么特别,如果你计划把应用程序直接发布到本地,就这样填:

如果你想把安装程序发布到服务器,可以这样填,也可以单击右边的
按钮来选择一个位置。

如果你希望在本地文件目录中发布一份,同时又想放到服务器上让用户下载,可以这样填。

- 安装模式一般选择第二项,不用解释,看字面意思就明白了,如下图。

- 我们的程序一般来说不可能是"终极"版,通常我们会不断更新或升级,所以,在"发布"页面中,我们可以单击"更新"按钮,随后会弹出一个窗口,如下图。

我们可以设置应用程序在什么时候检查更新,这里我改为每次运行时都检查更新。

获取更新位置,可填可不填,通常与发布位置相同。

点击确定按钮,关闭窗口。
- 发布版本号,勾选"随每次发布自动递增修订号"。这样一来,我们既可以自己填写版本号,如果忘记修改,也可以自动更新。

- 单击"发布向导"按钮,打开向导窗口,这里我们可以重新设置发布位置。

- 单击下一步,选择一种安装来源。

我们前面设置了IIS服务器的位置,所以默认是从网站安装,如果我们的应用程序是刻到光盘中来分发给客户的,也可以选择从CD/DVD安装。
- 单击下一步,选择应用程序的运行方式,如果选择CD/DVD安装,则不需要此步。

通常较好的做法是选择既可以离线使用,也可以在连接时使用。
- 单击下一步,再单击完成按钮,这时候我们会看到VS正在发布ClickOnce应用程序。

只要看到"发布成功"四个字就说明大功告成了。
下面我们来测试一下。
本地安装:我们上面的例子是生成了两个ClickOnce安装程序的,一个在本机文件中,一个在IIS服务器上。找到发布后的本地目录,如上面的d:\MyPublic\。双击setup.exe或MyApp.application文件,都可以启用安装程序。

我们看到,出现安全提示,如果确定应用程序来源合法,可以点击"安装"按钮进行安装。
安装成功后,我们的超级应用程序就运行起来了。

既然是叫ClickOnce了,那为什么我们刚才Click了不止一次呢? 那是因为缺少可信任的发布者证书导致出现安全提示的。在下一节中,我们会介绍如何自己制作证书,并在客户计算机中安装证书,那时候大家就会看到真正的ClickOnce,只要Click一下就可以安装了。
现在,我们可以打开"程序和功能"控制面板把应用程序卸载掉。
网站安装:打开浏览器,输入刚才发布的Web地址,在后面加上一个.application后缀的文件名。比如我们这个例子的清单文件叫MyApp.application。但我们会发现,找不到资源。
打开服务器上的目录一看,里面竟然是空的,我晕。
没关系,我们只要把刚才的发布选项改一下就行了。

然后重新发布就可以了。

我们看到,安装程序可以被激活了。
无论是哪种方式发布,无非就是把安装给客户,然后安装到他们的机器上罢了,所以,大家觉得哪种做法最简单就用哪种。这些东西也没有说什么硬性的条条框框,一切都是技巧而已。
好吧,本篇就说到这里吧。88
ClickOnce部署(1):一些发布方式的更多相关文章
- ClickOnce 部署 API 以编程方式检查应用程序更新
private void InstallUpdateSyncWithInfo() { UpdateCheckInfo info = null; if (ApplicationDeployment.Is ...
- ClickOnce部署
(1):一些发布方式 ClickOnce是什么玩意儿,这个问题嘛,在21世纪的互联网严重发达的时代,估计也没有必要大费奏章去介绍了,弄不好的话,还有抄袭之嫌.因此,有关ClickOnce的介绍,各位朋 ...
- 以管理员身份启动ClickOnce部署的应用程序
ClickOnce方式部署应用简单方便,估计很多人都用过,但这种方式存在一定的“缺陷”,即以管理员方式启动应用的问题,虽然出于安全考虑可以理解,但给需要管理员权限才能正常运行的程序带来了一定的麻烦,这 ...
- 摘:ClickOnce部署
ClickOnce部署 http://www.cnblogs.com/weixing/p/3358740.html#undefined (1):一些发布方式 ClickOnce是什么玩意儿,这个问题嘛 ...
- Excel催化剂开源第6波-Clickonce部署之自动升级瘦身之术
Clickonce无痛自动更新是我最喜欢使用VSTO开发并Clickonce部署的特性之一,但这个自动更新,通常会更新整个程序文件,包含所有的引用dll和一些资源文件等. 一般来说,我们更新的都是主程 ...
- Excel催化剂开源第4波-ClickOnce部署要点之导入数字证书及创建EXCEL信任文件夹
Excel催化刘插件使用Clickonce的部署方式发布插件,以满足用户使用插件过程中,需要对插件进行功能升级时,可以无痛地自动更新推送新版本.但Clickonce部署,对用户环境有较大的要求,前期首 ...
- ClickOnce部署(5):自定义安全权限
今天我们来探讨一下在ClickOnce部署中如何严格控制应用程序的权限. 演示应用 为了在下文中能更好地演示,我们先要做一个测试项目.也为了显得简单易懂,我使用最常用且最常见的WinForm项目,这是 ...
- ClickOnce部署(4):下载多个安装包
有时候,我们可能会一次性发布多个安装包,当然在网页上多加几个链接让用户逐个安装也是可取的.不过,也可以弄得更方便些,即用户先安装一个,作为一个"引导程序",然后通过这个程序去下载安 ...
- ClickOnce部署(3):使用证书
在讲述证书的使用前,我们先来了解另外一个知识——发布网页. 在前面所说的ClickOnce部署中,如果大家细心的话,应该会发现这么个问题. 如上图,发布成功后,在"输出"窗口中提示 ...
- 为通过ClickOnce部署的应用程序进行数字签名
为通过ClickOnce部署的应用程序进行数字签名 ClickOnce是.NET用于Windows应用程序的一种便捷部署方式.不过由于便捷,导致缺少自定义操作的空间.比如需要对通过ClickOnce部 ...
随机推荐
- Asp.Net Mvc + ComBoost.Mvc快速开发
ComBoost项目地址 http://comboost.wodsoft.com https://github.com/Kation/ComBoost/tree/develop 准备工作 首先,在Vi ...
- [BZOJ4200][Noi2015]小园丁与老司机
4200: [Noi2015]小园丁与老司机 Time Limit: 20 Sec Memory Limit: 512 MBSec Special JudgeSubmit: 106 Solved ...
- BZOJ4596: [Shoi2016]黑暗前的幻想乡
Description 四年一度的幻想乡大选开始了,最近幻想乡最大的问题是很多来历不明的妖 怪涌入了幻想乡,扰乱了幻想乡昔日的秩序.但是幻想乡的建制派妖怪(人类) 博丽灵梦和八云紫等人整日高谈所有妖怪 ...
- 2015-12-23-( dispaly:table的用法)
dispaly属性的table和table-cell属性值不怎么常用,主要是浏览器的兼容性不好,大多数都是为了兼容IE6.IE7,此属性IE8以上,谷歌,火狐,oprea等浏览器都支持. 此disp ...
- linux终端 字符界面 显示乱码
方法一:配置SSH工具 SecureCRT中文版配置 [全局选项]→[默认会话]→[编辑默认设置]→[终端]→[外观]→[字体]→[新宋体 10pt CHINESE_GB2312]→[字符编码 UTF ...
- 淘宝SDK扒出来的CURL调用含文件上传代码
<?php function curl($url,$postFields=null){ $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url); c ...
- 让div垂直居中的5种方法
方法一: 这个方法把 div 的显示方式设置为表格,然后我们可以使用表格的 vertical-align property 属性. HTML & CSS: <div class=&quo ...
- android shape的使用(转)
shape用于设定形状,可以在selector,layout等里面使用,有6个子标签,各属性如下: <?xml version="1.0" encoding="ut ...
- PMP备考_第六章_项目时间管理
项目时间管理 前言 项目时间管理是项目管理中最难的一个环节,与个人时间管理类似,团体的效率如果管理不当,是低于个人效率的,为了管理好时间,从预估,执行到反馈均需要严格的分析和处理.如果制定的计划是无法 ...
- 原生Ajax 和Jq Ajax
前言:这次介绍的是利用ajax与后台进行数据交换的小例子,所以demo必须通过服务器来打开.服务器环境非常好搭建,从网上下载wamp或xampp,一步步安装就ok,然后再把写好的页面放在服务器中指定的 ...