EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

应用程序更新

通常,部署后应用程序开发不会停止。最终用户可能需要更新,从而导致您发布该应用程序的新版本。在本课程中,您将学习如何更新应用程序。

假设您刚刚完成了应用程序的新版本开发。

更新Windows窗体应用程序

更新应用程序文件

更新和部署Windows Forms应用程序之间的唯一区别是,您将覆盖现有的应用程序文件,而不是创建新的文件。在以前的版本上将应用程序的新版本部署到任何最终用户工作站或终端服务器。使用在Xcopy方法或“安装项目方法”课程中学习的方法之一。ClickOnce Windows窗体应用程序具有其自己的内部更新方法。如果需要更新ClickOnce应用程序,请参考使用“ ClickOnce” MSDN介绍客户端应用程序部署的主题,以获取详细信息。

注意

如果最终用户具有自定义MySolution.Win.exe.config文件,请在更新时不要覆盖它们。自定义Model.User.xafml文件也是如此。

通过DBUpdater工具更新数据库

  • DBUpdater工具安装到要更新的工作站或服务器上。有关详细信息,请参阅“设置数据库连接”课程。
    重点

    当使用多个对象空间提供程序时,DBUpdater工具不支持这种情况(请参阅如何:在单个应用程序中同时使用实体框架和XPO)。有关使用多个持久对象空间提供程序的信息,请参考更新数据库,以获取可能的解决方法。

  • 启动命令提示符。键入“ cd %PROGRAMFILES(x86)%\ DevExpress 19.2 \ Components \ Tools \ eXpressAppFramework \ DBUpdater ”,然后按Enter。键入“ DBUpdater.exe .. \ MySolution \ MySolution.Win.exe.config ”,然后按Enter。该DBUpdater将连接到数据库服务器,并确定该应用程序的数据库比应用程序的旧版本。按ENTER键,DBUpdater将更新数据库。

    Deployment_Tutorial_0130

    提示

    要获取DBUpdater日志,请编辑其配置文件(DBUpdater.v 19.2 .exe.config)并将eXpressAppFramework开关值设置为3(信息):

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
      </startup>
      <system.diagnostics>
        <switches>
          <!-- Use one of the following predefined values: 0-Off, 1-Errors, 2-Warnings, 3-Info, 4-Verbose. The default value is 0. -->
          <add name="eXpressAppFramework" value="3" />
        </switches>
      </system.diagnostics>
    </configuration>
    

    日志将被写入eXpressAppFramework.log文件。

  • 运行Windows窗体应用程序以确保已更新。
注意

如果在更新Windows Forms应用程序时遇到任何问题,请参阅《部署疑难解答指南》主题。

通过应用程序更新实用程序设置Windows窗体应用程序的自动更新

如果不使用终端服务器提供对Windows Forms应用程序的访问,则需要在所有最终用户工作站上更新Windows Forms应用程序。最简单的方法是在每个工作站上用新文件覆盖应用程序文件。但是,还有另一种方法可以让您节省将来的时间。执行以下步骤以在多个工作站上自动执行更新过程。

重点

自动更新机制依赖于将ModulesInfo表中存储的版本与实际模块的版本进行比较。所以,你应该设置XafApplication.CheckCompatibilityType属性ModulesInfo设置自动更新之前。另外,请确保NonPersistentObjectSpaceProvider不是您的应用程序中第一个注册的Provider。XAF在应用程序更新时使用第一个注册的对象空间提供程序。

  • 在最终用户网络中选择一个文件服务器。创建一个共享文件夹,该服务器上的所有Windows Forms应用程序用户均可读取。您可以给它一个任意的名称。例如,将其命名为MySolutionUpdateSource。此文件夹将存储较新的应用程序版本。
  • 确保用户没有对MySolutionUpdateSource的写入权限。但是,您应该对此具有写权限。
  • 返回到先前更新的最终用户工作站。在应用程序配置文件中找到以下行。

    <add key="NewVersionServer" value="" />
    

    修改此行,如下所示:

    <add key="NewVersionServer" value="\\FILESERVER\MySolutionUpdateSource\" />
    

    用真实的通用命名约定(UNC)路径 替换“ \ FILESERVER \ MySolutionUpdateSource \ ”,以在上一步中创建文件夹。

  • 将Windows窗体应用程序文件夹的内容从最终用户工作站复制到MySolutionUpdateSource共享文件夹。应用程序可执行文件的UNC路径应为“ \ FILESERVER \ MySolutionUpdateSource \ MySolition.Win.exe ”。
  • %PROGRAMFILES(x86)%\ DevExpress 19.2 \ Components \ Tools \ eXpressAppFramework \ Application Updater \ DevExpress.ExpressApp.Updater.exe文件从开发人员工作站复制到MySolutionUpdateSource共享文件夹中。此文件的UNC路径应为“ \ FILESERVER \ MySolutionUpdateSource \ DevExpress.ExpressApp.Updater.exe ”。
  • 应用程序配置文件NewVersionServer密钥必须指向每个最终用户工作站上的MySolutionUpdateSource共享文件夹。手动修改配置文件或通过\ FILESERVER \ MySolutionUpdateSource \ MySolution.Win.exe.config文件覆盖配置文件。
  • 在尚未更新的最终用户工作站上运行Windows Forms应用程序。您将看到Updater进度栏。

    Deployment_Tutorial_0260

    如果显示以下错误消息之一,请检查以确保配置文件中的UNC路径没有输入错误,并且共享文件夹可读并且包含DevExpress.ExpressApp.Updater.exe文件。

    Deployment_Tutorial_0240

    更新完成后,该应用程序将自动重新启动。

现在,最终用户应用程序已配置为在数据库版本更改时自动更新。要部署新的应用程序版本,请执行以下步骤。

  • 用新的应用程序文件替换MySolutionUpdateSource共享文件夹中的文件。
  • 如上所述更新数据库版本。

当最终用户启动Windows窗体应用程序时,它将立即进行更新。更新过程需要将MySolutionUpdateSource共享文件夹内容复制到最终用户工作站所需的时间。如果未更新数据库,则更新过程将不会启动-即使MySolutionUpdateSource文件夹包含该应用程序的新版本,也将启动以前的应用程序版本。

注意
  • MySolutionUpdateSource文件夹只能用于存储新的应用程序文件。不要在此文件夹中存储其他文件。否则,它们将在更新时复制到每个最终用户工作站。
  • 您可以通过更改并重新编译其源来更改Updater实用程序的行为。默认情况下,更新程序工具源位于%PROGRAMFILES(x86)%\ DevExpress 19.2 \ Components \ Sources \ DevExpress.ExpressApp.Tools \ DevExpress.ExpressApp.Updater文件夹中。例如,您可以实现从远程Web服务器而不是本地文件共享下载新版本的文件。

更新ASP.NET应用程序

更新应用程序文件

更新和部署ASP.NET应用程序之间的唯一区别是,您将覆盖现有的应用程序文件,而不是创建新的文件。使用在Xcopy方法发布Web方法安装项目方法课程中学习的方法之一,在先前版本上部署应用程序的新版本。

注意

如果您有一个自定义服务器端Web.config文件,请在更新时不要覆盖它。

通过DBUpdater工具更新数据库

  • DBUpdater工具安装到要更新的工作站或服务器上。有关详细信息,请参阅“设置数据库连接”课程。
  • 启动命令提示符。使用Web.config的路径作为命令行参数运行DBUpdater.exe。该DBUpdater将连接到数据库服务器,并确定该应用程序的数据库比应用程序的旧版本。按ENTER键,DBUpdater将更新数据库。

    Deployment_Tutorial_1110

  • 运行ASP.NET应用程序,并确保已更新。
注意

如果在更新ASP.NET应用程序的数据库时遇到问题,请在查看《部署疑难解答指南》之前,尝试以下操作。将所有已构建的应用程序程序集放入新创建的文件夹中。确保包含WebApplication后代的程序集位于此文件夹中。通常,该程序集的名称将是后缀为.Web的应用程序的名称-例如MySolution.Web。将Web.config文件放入此文件夹。运行DBUpdater.exe,指定Web.config文件的标准路径。

注意

您可以通过指定模块的程序集的固定版本(例如1.0.0.0)来阻止特定模块更新数据库。例如,可能需要强制WinForms和ASP.NET模块的版本同步。默认情况下,使用星号(*)指定内部版本号和修订版本号,并且Visual Studio自动将这些数字递增(请参见AssemblyVersionAttribute)。这会导致每个模块更新上的数据库版本不匹配。

相关文章

转载保留此链接,注明出处