U9二次开发之补丁制作

2022-12-05 15:18:42 浏览数 (1)

补丁制作

u9二开完成之后就要制作补丁发布到服务器啦,我把补丁制作的流程记录一下,供你参考。

1、还原制作补丁所需要的数据库

将补丁库.bak,还原到数据库中。

2、配置environment.xml文件

还原数据库之后,然后配置BuildTool目录下的environment.xml文件。

修改数据库连接信息,指向刚才还原的数据库U9Build25_YX_DEV。

只需要改数据库连接信息就行了,其他参数不用改。

代码语言:javascript复制
<?xml version="1.0" encoding="utf-8" ?> 
<environment>    
    <system>    
 <connectionString>packet size=4096;user id=sa;Connection Timeout=150;Max Pool size=1500;data source=localhost;persist security info=True;initial catalog=U9Build25_YX_DEV;password=123456</connectionString>
    </system>    
    <view>
     <mapper type="UFSoft.UBF.View.Query.MetadataDomainMapping, UFSoft.UBF.Business.Adapter" />
 <creator type="UFSoft.UBF.View.Query.Adapter.TranslatorCreator, UFSoft.UBF.Business.Adapter" />
    </view>
    <Path>
     <Metadatalib>d:</Metadatalib>
    </Path>
    <path>
 <ubfbin>d:ubf2.0bin</ubfbin>
 <ubfstudio>d:ubf20visual studio</ubfstudio>
 <ubfresources>d:ubf20resources</ubfresources>
 <approot>d:u9app</approot>
    </path>
</environment>

3.配置desktopBuild.xml 文件

同样在BuildTool文件夹下找到desktopBuild.xml 文件。

version:u9的版本号,我这里是6.0

ProductPath:U9 Portal 文件夹所在的目录,也就是u9的安装目录

ProjectPath:补丁生成文件放置的目录

Module:补丁的模块名,可以自定义,一般以Cust开头

其他参数不需要改。

代码语言:javascript复制
<?xml version="1.0"?>
<configuration version="6.0">
  <!--U9,HR,CD,TR !-->
  <Domain>CD</Domain>
  <PatchBaseVersion>0</PatchBaseVersion>
  <ProductPath>D:yonyouU9V60</ProductPath>
  <ProjectPath>D:yonyouU9ProjectMKGD补丁</ProjectPath>
  <FilePath>D:</FilePath>
  <!--重新构造时是否清空文件夹Y,N-->
  <DelOnRebuild>Y</DelOnRebuild>
  <CustomerNo>TO_BE_Cust</CustomerNo>
  <IsCustomer>1</IsCustomer>
  <Module>Cust_CompanyName</Module>
  <SpNumber>0</SpNumber>
  <IsSP>0</IsSP>
</configuration>

4.新建方案

打开 UFIDA.UBF.Build.Engine.DesktopBuild.exe 程序,点击新建方案按钮,新建一个方案。

然后点击构造按钮:

构造完成后,会在ProjectPath指定的目录下生成很多文件夹:

各个文件夹的说明如下:

  • AssemblyInfo:放置Setup.bdxml,此文件是各个模块装配文件的集合
  • Files:放置所有需要拷贝的文件,包括所有BE/BP/UI/SV的dll,UI/BE插件的配置文件,所有需要拷贝到服务器Portal下的文件
  • Metadata:模型构造生成的文件,放置与原数据脚本一起生成的bulk文件,BE/BP/UI/SV生成的所有bulk文件(默认是生成在UBF下的,默认路径:D:yonyouUBFV50U9.VOB.Product.Other)
  • PostSQL:所有需要执行的脚本
  • PreScript:是预置脚本的集合,即需要在补丁刚开始部署到服务器上时需要优先执行的脚本
  • ReportMD:放置报表模型和打印模型,所有xml混合放在一起,不要建立子文件夹存放不同模型 (构造生成的建表脚本不需要放入补丁包中,否则会清除掉数据库表原有数据)

5.复制文件

我做的是BE插件,只需要把BE插件项目编译好的dll、pdb文件和sub.xml文件复制到Files文件夹下就行了:

6.生成安装信息

点击生成安装信息按钮:

操作成功后会在对应目录下生成packageinfo.xml文件。

打开xml文件修改一下说明信息。

不知什么原因,我生成的packageinfo.xml文件中dir是空的(难道是配置问题?),我手动添加了下dir路径:

dll和pdb文件是放在PortalApplicationLib路径下的,

sub.xml文件是放在Portalbin路径下的。

代码语言:javascript复制
<?xml version="1.0" encoding="UTF-8"?>
<package>
  <baseinfo code="CD6.0.Cust_Canaan.1002208310000003" name="CD6.0.Cust_Canaan.1002208310000003" type="" version="6.0" releasedate="" desc="" question="" doc="" basebuild="" referenceBuild="20090918002" IsCustomer="1" CustomerNo="TO_BE_Cust" Domain="CD" SPNum="0" Modules="Cust_Canaan," DependModules="," IsSP="0" />
  <description>说明</description>
  <descriptiondetail>标准采购插件提交审核时写中间表</descriptiondetail>
  <filelist>
    <file dir="PortalApplicationLib;" exeflag="" servertype="0" filename="UFIDA.U9.Cust.Canaan.PurchaseOrderPlugBE.dll" filetype="0" />
    <file dir="PortalApplicationLib;" exeflag="" servertype="0" filename="UFIDA.U9.Cust.Canaan.PurchaseOrderPlugBE.pdb" filetype="0" />
    <file dir="Portalbin;" exeflag="" servertype="0" filename="UFIDA.U9.Cust.Canaan.PurchaseOrderPlugBE.sub.xml" filetype="0" />
  </filelist>
</package>

7.生成补丁

点击生成补丁按钮生成补丁。

8.安装补丁

打开系统管理工具客户端,点击补丁下载与安装侧边栏,然后点击导入,添加自己的补丁。

添加完后点提交按钮:

然后选中你添加的补丁,安装就行了:

最后

配置文件只需要配置一次,以后直接使用就可以了,其实打补丁本质上就是把各种dll、xml文件复制到服务器不同的文件夹之下而已,我们完全可以自己手动复制,不需要打补丁。

不过打补丁的好处是,可以记录历史的补丁数据,什么时候更新了什么东西,一目了然。

如果全是手工复制文件到服务器目录的话,时间久了就会搞不清楚以前更新了什么内容,不利于系统维护。

所以,我还是建议通过打补丁的方式更新系统。

0 人点赞