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

  • 相关阅读:
    Object-C,NSSet,不可变集合
    NYIST 860 又见01背包
    NYIST 1070 诡异的电梯【Ⅰ】
    HDU 1542 Atlantis
    HDU 4756 Install Air Conditioning
    CodeForces 362E Petya and Pipes
    HDU 4751 Divide Groups
    HDU 3081 Marriage Match II
    UVA 11404 Palindromic Subsequence
    UVALIVE 4256 Salesmen
  • 原文地址:https://www.cnblogs.com/margiex/p/243755.html
Copyright © 2011-2022 走看看