zoukankan      html  css  js  c++  java
  • smart client auto update

    试了一下appupdater,发现总是报mscorlib.XX.dll及其它DLL找不到. 网上找了一些文章,http://blog.joycode.com/percyboy/archive/2005/05/10/50636.aspx. 还是未能解决. 最后只好换一个updater组件. 找了一下,发现一个:
    http://csautoupdater.sourceforge.net/

    除了与appupdater差不多外,还支持zip压缩下载,对于比较大的客户端,还是很有用的. 几乎没看到有什么帮助文档. 下载来试了一下,发现使用很简单.
    将autoupdater.dll添加到工程中, 然后将autoupdater.dll作为一个控件DLL添加到toolbox, 拖到form上,设置一下ConfigUrl 即可.

    客户端目录结构如下:
    AutoUpdateStarter.exe
    AutoUpdateStarter.config
    Main/    存放客户端主文件及相关DLL, 可随意修改

    服务器端:
     UpdateVersion.xml
    newversion.zip

    其中xml内容如下:
    <VersionConfig>
        <AvailableVersion>1.2.0.0</AvailableVersion>
        <AppFileURL>http://localhost/1.2.0.0.zip</AppFileURL>
    </VersionConfig>

    要注意的是zip文件打开即是客户端主程序,压缩时根目录不能是一个目录,,否则在客户下载解压后将在main目录下生成zip中的目录, 即生成类似的东西:main\1.2.0.0\XXX. 而这样会出错. 原因如下:
    autoupdater找到下载的zip文件之后, 即download下来, 然后解压到AutoUpdateStarter.exe相同目录的update目录, 然后删除以前的main目录下的程序, 然后拷贝update目录下的内容到main目录,最后删除update目录.
    如果解压的update目录下还有一个目录,而不是文件.则最后main目录下是一个目录,而没有可执行文件, 根据AutoUpdateStarter.config中的配置, 将找不到文件出错.

    还有一点忘了说明, 需要CSharplib支持zip的解压.
    这个组件与appupdater还有一个差别就是appupdater会有以前的版本保存在客户端目录,而此组件将只有一个版本, 所以在发布客户端时一定要注意兼容性和可靠性, 否则客户端当掉了想再升级就很麻烦了.

    另外一个检测新版本发布的组件
    http://www.codeproject.com/KB/dotnet/SmartAssembly.aspx

  • 相关阅读:
    【数通大讲坛02】IP子网划分(VLSM)
    【数通大讲坛01】利用TCP/IP模型理解数据通信过程
    新公司的第一个任务-重构系统(二)
    作为一名程序员的心得分享
    新公司的第一个任务-重构系统(一)
    第一次离职
    2018年终总结
    跳槽并不简单
    小公司的项目交付
    记一次项目测试间隔太长的问题
  • 原文地址:https://www.cnblogs.com/margiex/p/243755.html
Copyright © 2011-2022 走看看