ClickOnce部署(4):下载多个安装包

本文介绍了如何使用ClickOnce部署技术创建一个引导程序,该程序可以下载并安装多个应用程序包。通过创建一个InPlaceHostingManager对象并调用相关方法,实现逐个下载并安装其他应用程序。详细步骤包括获取清单、检查权限、下载应用程序并跟踪下载进度。
摘要由CSDN通过智能技术生成

有时候,我们可能会一次性发布多个安装包,当然在网页上多加几个链接让用户逐个安装也是可取的。不过,也可以弄得更方便些,即用户先安装一个,作为一个"引导程序",然后通过这个程序去下载安装其他应用程序。

我们还是说说真实的例子,这样好理解一点。假设我开发了两个应用程序,一个叫App1,另一个叫App2。我把这两个应用程序同时发布。

我们可以在IIS服务器的根目录下新建两子目录,我们分别把这两个应有程序发布到这两个文件夹下,如下面两张截图所示。

第一个应用

 

第二个应用

 

最后,重点是如何做这个"引导"安装包,即我们通过这个应用程序来下载前面两个应用来安装。

别急,在开工之前,我想让大家背书,不多,小学生也能背下来的,总共就两句话:

第一句:凡是和ClickOnce部署有关的类都位于System.Deployment.Application命名空间下

第二句:开菜单——做菜——试菜——开饭

第一句话就不用解释了,如果你不明白说明你还没入门。我们把重点放在第二句话,这句话可能大家觉得很搞笑,怎么好像在做饭啊? 是啊,"民以食为天",做饭很重要。

这里说的是做这个"引导"安装应用的步骤,我们要用到InPlaceHostingManager类,它可以实现实时下载安装应用程序包,不要问我这个类在哪里,前面叫你背了第一句话。

InPlaceHostingManager类使 用按以下几步。

 

第一、new一个InPlaceHostingManager对象,这是废话。构造函数中我们要传 一个URI,部署清单的URI,打包ClickOnce后,那个以.application后缀结尾的文件就是。

 

第二、开菜单。调用GetManifestAsync方法获取清单,获取后,无论成功与否会引发GetManifestCompleted事件,所以在调用方法前要为GetManifestCompleted事件附加处理代码,这是基础知识,估计我不必解释了。

 

第三、做菜。调用AssertApplicationRequirements方法检查一下你有没有这个权限,要明白自己是吃几碗饭的,如果权限不够会引发异常,如果力所能及,方法调用后一切正常。一个bool类型的参数表示当权限不足时是否尝试提升,你懂的。

如果权限检查通过,调用DownloadApplicationAsync方法就可以下载应用程序了,在这过程中会引发DownloadProgressChanged和DownloadApplicationCompleted,这两个事件我不说了,你知识怎么处理了,和使用BackgroundWorker一样,如果你不懂,请回家好好细读《C#入门经典》。

 

第四、试菜。打开"开始"菜单或"开始"屏幕,看看有没有新安装应用的快捷方式,如果有,那就下载安装成功了。

 

第五、吃饭。尽情享用吧。

 

好吧,光说不行,还是要做一做。

界面是包括两个Label和两个ProgressBar,标签用来显示文本,进度条当然表示下载的进度。

然后处理Form的Load事件,启动对App1和App2项目的安装包的下载和安装。

public partial class Form1 : Form

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值