在某个项目后期维护时,发现该项目是将CS程序发布到IIS上,以WEB访问方式,将代码修改后,编译后,发现自己不知道怎么更新到服务器上了,通过网上相关查阅,才知道这是ClickOnce部署。现做简单记录,以便今后查阅。
ClickOnce简介
ClickOnce 部署使您可以将基于 Windows 的应用程序发布到 Web 服务器或网络文件共享以简化安装。Visual Studio 对通过 ClickOnce 部署的应用程序的发布和更新提供完全支持。ClickOnce 部署可用于使用 Visual Basic、Visual C# 和 Visual J# 创建的项目,但不能用于使用 Visual C++ 创建的项目。
ClickOnce的好处
使用ClickOnce发布Windows应用程序可以使用户方便地更新应用程序,可以起到B/S的效果,当程序更新了不必每一个用户重新安装更新。程序发布者只需要把新版本放到服务器,程序使用者在启动软件或退出软件时即可更新软件。
当然,要使安装过程更可视化、在安装过程加入更多操作则应该自己制作安装程序。
ClickOnce发布过程
1. 代码发布
打开"解决方案资源管理器",在项目节点上右击,从弹出的快捷菜单中选择【属性】,打开项目属性窗口,切换到"发布"选项卡。
- 发布位置
- 安装URL
当客户需要安装软件时,只需要访问此路径,点击“安装”后即会有安装的过程提示。
- 安装模式和设置
- 发布版本
2. 应用程序文件
这里罗列了发布程序时,将包括(发布)的文件。
注意:VS的此功能并不十分完善,如果程序引用了OFFICE组件,它会把stdole.dll、Office.dll以及Microsoft.Vbe.Interop.dll作为系统必备,当在客户机安装时就有可能出现的版本不同的错误(因为安装的office版本不同,而这一般不影响程序使用),此时,你应该把这些DLL的“发布状态”更改为“包括”,这样就不会出再错误。
3. 系统必备
主要选择软件在安装时将自动安装的组件。开发者可以根据开发所用到的组件进行选择。例如使用了水晶报表,则应该把“水晶报表查看器”组件选上。
还有需要注意的是,为了使用客户安装软件时更方便,一般选择“从与我的应用程序相同的位置下载系统必备组件”。这样,安装程序的相同路径下将包括这些组件。当客户安装软件时,如果计算没有必备的组件,将从这些路径下载组件进行安装。
4.更新
这里是程序的更新选项。开发者可根据需要选择。
选择ClickOnce更新策略
设计 ClickOnce 应用程序时,需要确定应用程序将使用何种策略来检查可用的更新。有三种基本策略可以使用:在应用程序启动时检查更新、在应用程序启动后检查更新(在后台线程中运行)或是提供进行更新的用户界面。此外,还可以确定应用程序检查更新的时间间隔,并且可以强制必须执行更新。
注意:如果“更新路径”和“安装路径”不同,则在“更新路径”所在的机器要作同样的配置。这两个路径一般相同,如有不同开发人员将与部署人员协商一致。
5.发布选项
在这里可以设置一些高级的选项或输入一些高级信息。如选择“发布语言”等。
发布路径有可能选择在本机,而服务器部署并不一定在本机,例如在开发者的机器发布,而需要把文件拷贝到客户的服务器进行部署,这要求“发布路径”与“安装路径”、“更新路径”不同外,最好此时把“验证上载到Web服务器的文件”这项的选定取消,因为“安装路径”和“更新路径”很有可能不存在,如果取消此项的选定,会大大加快发布速度。
同时,也可以把“部署网页”改成不是“publish.html”。这也可以在一定程序度上防此别人恶意访问网站。