软件版本更新(局域网clickonce)
在工业领域多年,第一次有需要发布应用程序的需求,应用场景:硬件为一台主控电脑,连接8个从站电脑;每个电脑一个应用软件,主站客户端,从站服务器需求为所有应用软件发布到主机的硬盘位置,其他软件启动时自动更新所需文件。
技术方案选择:通过对需求分析,至少要3个步骤,编写应用软件管理软件,应用软件更新策略,应用软件更新(文件传输,启停等)。应用软件框架本身各自模块为TCP通讯,如果要兼顾软件更新,则要重新分割模块,TCP传输文件机制还未研究过(传输过程、异常处置等),以此种种不便何不试试自带的发布工具ClickOnce呢?
-
主站搭建Web服务,使用asp.net创建web服务(使用这么多年c# 还第一次使用asp.net…)
1.1 创建webServer服务;
1.2 启动IIS; -
应用程序发布设置
2.1 设置发布地址;
2.2 设置软件包管理位置;1. 主站搭建Web服务
1.1 首先确保主机电脑开启IIS服务,并配置正确
然后在控制面板能看到(第一个就是),打开它
网站右键,创建一个别名,例如(Kelin),然后绑定物理路径
测试连接,都通过才能正常访问
至此,网站服务创建成功
1.2 创建ASP.net Web服务(本地IP设置为192.168.190.106)
为方便网页浏览,web.config添加如下节点
<system.webServer>
<directoryBrowse enabled="true"/>
</system.webServer>
发布后,在D盘生成3个文件
然后回到IIS服务,右侧点击浏览.80
出现如下结果:
服务端环境已搭建完成。
2 应用程序发布设置
2.1 配置应用程序
应用程序由MyApp和MyClassLibrary库组成,界面下方显示两个程序集的版本号
属性里设置更新规则,点立即发布
各文件夹内容如下,这时需要将输出目录Deploy目录下的文件夹拷贝到WebSite下
且Deploy目录下的文件拷贝到8台从机里进行首次部署安装。
在主机电脑本机,直接点setup
可以看出,当前程序从192.168.190.106站点服务开始下载安装,安装成功后运行
主站和从站都是正常运行的。
下面最重要的一步,测试版本更新:
这时,将输出目录Deploy目录下生成的文件替换到Website文件夹下
这时,会提示新版本更新,
运行如下:
可看出程序集和库版本都是最新版本。
在从机测试也一致。
值得注意的是:
1.项目的部署目录为Website,Deploy目录只是生成项目的发布文件,vs默认生成目录与部署目录不能一样,每次重新发布版本后,需要将生成的文件拷贝到服务器目录Website下。
2.clickonce默认不可自定义安装目录,如有需要其它文件一同放到运行目录,则需要编译时添加到工程中,然后再属性中设置生成选项为内容即可。