当前位置:首页 > CN2资讯 > 正文内容

windows服务器升级jquery

2天前CN2资讯


2021.06.24  最新版本的OAUS

已经支持Windows、Linux、国产化操作系统以及国产CPU。

只要是以下载客户端的形式分发的程序,绝大多数都需要自动升级的功能。

目前主流的程序自动升级策略是,下载最新的安装包,然后重新安装整个客户端。这种方式虽然简单直观,但是缺陷也很明显。

比如,即使整个客户端有100M,而本次更新仅仅只是修改了一个1k大小的dll,那也意味着要重新下载100M的全部内容。这对带宽

是极大的浪费,而且增加了用户茫然等待的时间。傲瑞自动升级系统OAUS可以完美地解决这个问题,在类似的场景中,使用OAUS

就可以只更新那个1k大小被修改了的dll。

一.OAUS的主要功能

OAUS 是一套能够按需更新的智能升级系统,以单个文件而不是整个客户端为升级的基础单元。OAUS提供了高性能的可直接执行的

客户端程序和服务器程序,能以最简洁的方式与您的应用进行集成。

OAUS主要有如下特点:

(1)内核基于ESFramework构建,性能卓越。

(2)版本管理的基础单元为被分发的客户端程序中的每个文件。

(3)程序升级时,支持两种形式:文件添加、文件删除。

(4)升级启动时,只更新那些发生变化的文件。

(5)升级完成后,自动启动新版本的客户端应用程序。

(6)部署简单,方便集成。

本文将着重介绍OAUS的相关背景、使用方法,至于详细的实现细节,大家可以直接下载源码研究。如果了解了OAUS的使用,源码的理解就非常容易了。如果需要直接部署使用自动升级系统,那么,可下载文末的可执行程序压缩包。

二.OAUS的使用(Windows版本)

1.OAUS服务端结构

OAUS提供了可直接执行的服务端程序和客户端程序:AutoUpdaterSystem.Server.exe 和 AutoUpdater.exe。 OAUS服务端的目录结构如下所示:

OAUS的客户端与服务器之间通过TCP通信,可以在AutoUpdaterSystem.Server.exe.config配置文件中配置服务器通过哪个TCP端口提供自动升级服务。

FileFolder文件夹初始是空的,其用于部署被分发的程序的各个文件的最新版本。注意,其下的文件结构一定要与被分发的程序正常部署后的结构完全一致 -- 即相当于在FileFolder文件夹下部署一个被分发的程序。

2.OAUS客户端结构

OAUS客户端文件位于AutoUpdater文件夹中,OAUS规定AutoUpdater文件夹必须位于分发程序的根目录。

比如,以部署好的VideoChatSystem系统客户端为例,如下所示的VideoChatSystem文件夹就是其客户端分发程序的根目录,所以,AutoUpdater文件夹就放在这个目录下。

说明一下,VideoChatSystem文件夹下被分发的每个客户端文件(包括子目录下的文件)都可以实现自动更新,但是,AutoUpdater文件夹是不能更新它自己的。

AutoUpdater文件夹下的文件如下所示:

可以在AutoUpdater.exe.config配置文件中配置OAUS服务器的IP、端口等信息,其内容如下所示:

请注意配置的CallbackExeName,其表示当升级完成之后,将被启动的分发程序的exe的名称。这个CallbackExeName配置的为什么是名称而不是路径了?这是因为使用和部署OAUS客户端时是有要求的:

(1)被分发的程序的可执行文件exe必须位于部署目录的根目录。

(2)OAUS的客户端(即整个AutoUpdater文件夹)也必须位于这个根目录。

如此,AutoUpdater就知道分发程序的exe相对自己的路径,如此就可以确定分发程序的exe的绝对路径,所以就可以在升级完成后启动目标exe了。另外,根据上述的两个约定,再结合前面讲到的服务端的FileFolder文件夹的结构约定,当服务端更新一个文件时,AutoUpdater便可以确定该文件在客户端机器上的绝对路径了。

3. OAUS自动升级流程

下面我们就详细讲讲如何使用OAUS来构建自动升级系统,大概的步骤如下。

(1)运行OAUS服务端。

(2)将被分发的客户端程序的所有内容放到OAUS服务端的FileFolder文件夹下,其结构与客户端程序正常部署后的结构要完全一致。我们以部署VideoChatSystem为例。

(3)使用OAUS服务端为被分发的客户端程序的每个文件生成默认版本号,并创建版本信息配置文件UpdateConfiguration.xml。这个配置文件也将被客户端使用。

点击服务端界面上的“文件版本管理”按钮,将弹出用于管理各个文件版本的【文件版本信息】窗体。

当用新版本的文件覆盖老的文件后,点击“自动扫描”按钮,服务端就会检索FileFolder文件夹下文件的名称、大小、最后更新时间,然后得出本次更新结果:变化了几个文件(变化文件的版本号都会自动增加1)、新增了几个文件、删除了几个文件。

当关闭【文件版本信息】窗体时,只要有某个文件版本变化,则“最后综合版本”的值(int类型)会递增1。通过比较OAUS的客户端保存的“最后综合版本”的值与OAUS的服务端最新的“最后综合版本”的值,就可以快速地识别客户端是否已经是最新版本了。

另外,初次打开这个窗口时,将在OAUS服务端的目录下,自动生成一个版本信息配置文件UpdateConfiguration.xml。而且,每当通过该窗体来设置某个文件的新版本时,UpdateConfiguration.xml会自动同步更新。

(4)将UpdateConfiguration.xml添加到OAUS的客户端程序(即上述的AutoUpdater的文件夹)中。

(5)在创建被分发的客户端的安装程序时,将OAUS的客户端(即AutoUpdater的文件夹)也打包进去,并且像前面说的一样,要将其直接部署在运行目录(BaseDirectory)下(与分发的exe同一目录)。

如此,准备工作就完成了,当客户端通过安装包安装好了VideoChatSystem之后,其目录结构像下面这样:

(6)当我们有新的版本要发布时,比如要更新某个文件(因为文件被修改),只需:

a. 将修改后的文件拷贝到OAUS服务端的FileFolder文件夹下的正确位置(或覆盖旧的文件)。

b. 在OAUS服务端打开【文件版本信息】窗体,点击“自动扫描”按钮,扫描完成后,关闭该窗体即可。

(7)如此,当客户端再启动AutoUpdater.exe时,就会自动升级,更新那些发生变化的文件。 以下是AutoUpdater.exe运行起来后的截图。

(8)当升级完成后,将启动前述的OAUS客户端配置文件中配置的回调exe。(在本例中就是VideoChatSystem.exe)

(9)OAUS客户端会在日志文件UpdateLog.txt(位于AutoUpdater的文件夹下,在OAUS客户端首次运行时自动生成该文件)中,记录每次自动升级的情况。

(10)如果升级的过程中,与服务端连接中断,则会自动重连,在重连成功后,将启动断点续传。

4.OAUS实现更新的原理

(1)客户端启动时,从服务器获取“最后综合版本”的值,然后与本地的“最后综合版本”的值相比较,如果本地的值较小,则启动OAUS客户端。

(2)在实际执行更新时,是依据每个分发文件的版本号来决定该文件是否需要被更新的。比如对于A.dll这个分发文件,如果在OAUS服务端的版本号更高,则OAUS就会更新这个文件。同样,如果有新增文件或删除文件,OAUS客户端也会同步这些操作。

5.何时启动自动升级客户端?

假设某个系统是下载客户端形式的,那么客户端该如何知道是否有新版本了?然后又该何时启动AutoUpdater.exe了?

我们的经验是这样的:客户端启动时,从服务器获取“最后综合版本”的值,然后与本地的“最后综合版本”的值相比较,如果本地的值较小,则表示客户端需要更新。这个过程可以这样做到:

(1)当在OAUS服务端的FileFolder文件夹下放置了新的文件,并通过【文件版本信息】窗体正确的更新了版本号,在关闭【文件版本信息】窗体时,“最后综合版本”的值会自动加1。

(2)系统客户端可以通过调用OAUS.Core.VersionHelper类的静态方法HasNewVersion()来判断是否有新版本。

(3)如果HasNewVersion方法返回true,则通常有两种模式:由用户选择是否升级,或者是强制升级。

一般而言,如果最新客户端程序与老版本兼容,不升级也影响不大,则可以交由用户决定是否升级;如果最新客户端程序不兼容老版本,或者是有重大更新,则将启动强制升级。如果流程要进入启动升级,那么只要启动AutoUpdater的文件夹下AutoUpdater.exe就可以了。要注意的是,启动AutoUpdater.exe进程后,要退出当前的客户端进程,否则,有些文件会因为无法被覆盖而导致更新失败。代码大致如下所示:

if (VersionHelper.HasNewVersion(oausServerIP,oausServerPort)) {string updateExePath = AppDomain.CurrentDomain.BaseDirectory + "AutoUpdater\\AutoUpdater.exe"; System.Diagnostics.Process myProcess=System.Diagnostics.Process.Start(updateExePath); ......//退出当前进程 }

三.OAUS的使用(Linux版本)

1.OAUS Linux服务端结构

与Windows版本不同,OAUS Linux版是通过命令来运行服务端程序和客户端程序:OAUS.Server.NerCore.dll 和

AutoUpdater.NetCore.dll。

2.OAUS Linux客户端结构

同Windows版本一样,OAUS客户端文件位于OrayTalk文件夹中,OAUS规定AutoUpdater.NetCore文件夹必须位于分发程序的根目录。

3.OAUS Linux升级流程

流程几乎同Windows版本完全一样。

(1)运行OAUS服务端。

(2)将被分发的客户端程序的所有内容放到OAUS服务端的FileFolder文件夹下,其结构与客户端程序正常部署后的结构要完全一致。

(3) 当用新版本的文件覆盖老的文件后,在控制台输入Scan,服务端就会检索FileFolder文件夹下文件的名称、大小、最后更新时间,然后得出本次更新结果:变化了几个文件(变化文件的版本号都会自动增加1)、新增了几个文件、删除了几个文件。

(4)当客户端再启动AutoUpdater.NetCore.dll时,就会自动升级,更新那些发生变化的文件。 以下是OAUS客户端运行起来后的截图。

4.何时启动自动升级客户端?

同Windows版本一样,可做如下判断启动OAUS Linux客户端:

if (VersionHelper.HasNewVersion(oausServerIP,oausServerPort)) {string updateExePath = AppDomain.CurrentDomain.BaseDirectory + "AutoUpdater/AutoUpdater.NetCore.dll"; System.Diagnostics.Process myProcess=System.Diagnostics.Process.Start(updateExePath); ......//退出当前进程 }

注意:只有运行的机器上装有NetCore环境,才能运行OAUS客户端,若要在其他架构如ARM64、Mips64el的机器上运行的话,需将对应架构的libSkiaSharp.so文件拷贝到AutoUpdater.NetCore文件夹中再运行客户端

四.相关下载

注:若需要在非x64 CPU架构的Linux或国产化操作系统上运行OAUS客户端,请联系我们获取对应架构的运行时 - runtimes。

-----------------------------------------------------------------------------------------------------------------------------------------------

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/29984.html

    分享给朋友:

    “windows服务器升级jquery” 的相关文章

    ColoCrossing数据机房评测:高性能VPS和安全保障让业务更高效

    ColoCrossing是一家在美国市场上已有多年历史的数据机房提供商。我在了解这家公司时,深深被它在数据托管领域的地位所吸引。实际上,ColoCrossing提供的服务不止是简单的服务器租用,他们一手打造了多个高质量的数据中心,涵盖了VPS及服务器托管等业务。随着最近他们在爱尔兰都柏林新增了机房,...

    选择合适的服务器购买攻略:性能、预算与品牌分析

    在购买服务器之前,进行充分的准备至关重要。首先,我喜欢明确自己购买服务器的目的。是否只是用来搭建网站,还是用于复杂的数据处理,抑或是作为云计算的基础设施?这些需求会直接影响我的选择。明确目标后,我可以更好地针对我的具体需求进行规划。 接着,我必须考虑预算。无论是想购买入门级的服务器,还是高性能的旗舰...

    全面掌握VPS线路检测:提高网络性能的关键工具和方法

    当我们讨论VPS(虚拟专用服务器)时,线路检测是不可或缺的一部分。VPS线路检测主要是评估VPS网络性能的一个环节,涵盖了多个重要的测试方法,比如ping值测试、路由跟踪,以及下载速度测试。每一种检测方式都有其独特的功能,通过这些手段,我们能够获取到相关的网络性能数据,从而更好地了解VPS的使用状态...

    Rndc2的线路怎么样?全面评测RackNerd洛杉矶DC02机房

    Rndc2的基本线路信息 说到Rndc2的线路,首先让我跟大家分享一下它的基本信息。这个线路的核心在于RackNerd洛杉矶DC02机房,位置恰好在美国西海岸的洛杉矶。成立于2019年的RackNerd,以其价格优势著称,给我们提供了比较便宜的美国VPS选择,最低年付大约10美元,这对于很多希望节省...

    NameSilo续费优惠码2024:如何利用优惠码降低域名续费成本

    在域名注册的世界中,NameSilo是一颗璀璨的明珠。成立于2010年的这家公司,迅速赢得了用户的青睐。人们总是追求优质且经济实惠的服务,而NameSilo无疑满足了这一需求。便宜的价格和稳定的服务让它在众多注册商中脱颖而出。 回想起最初使用NameSilo的经历,选择它不仅因为价格的吸引,更多的是...

    elkupi - 提供灵活抗投诉主机服务的领先选择

    在我探寻各种主机服务商时,elkupi是个让我印象深刻的名字。这家公司在业内存在已久,专注于提供一些特殊主机服务,尤其是在欧美国家法律限制较多的情况下,elkupi的优势尤为明显。它不仅能容纳一些法律上不太允许的内容,在抗投诉方面也表现得非常出色,几乎可以忽略不计。这一特点无疑吸引了很多需要这类服务...