补丁制作
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文件复制到服务器不同的文件夹之下而已,我们完全可以自己手动复制,不需要打补丁。
不过打补丁的好处是,可以记录历史的补丁数据,什么时候更新了什么东西,一目了然。
如果全是手工复制文件到服务器目录的话,时间久了就会搞不清楚以前更新了什么内容,不利于系统维护。
所以,我还是建议通过打补丁的方式更新系统。