【分享-求助】关于K3 Cloud打包的那点事儿(大家踊跃参与...
金蝶云社区-丹东老李
丹东老李
1人赞赏了该文章 2,269次浏览 未经作者许可,禁止转载编辑于2015年09月10日 12:20:34

业务背景:
之前自己安装的K3 Cloud环境,根据客户要求,做BOS的二次开发,插件功能开发差不多了,需要结合客户上线的数据环境,进行完善与调试。我备份了客户的正式业务数据库,在我的开发机上恢复到数据中心。我想把我在原始数据中心的表单,迁移(或发布)到客户环境,进行进一步测试,完善、统一业务规则。
结果是为此付出了很多时间代价,终于在上一个(9月8日)2天1夜的折磨中,对K3 Cloud的打包有了点了解,在此希望与大家分享一下,同时希望对此有卓见的积极参与,大家共同提高(因为我还有一些问题没有搞清楚)。同时也是对这段时间思路的一次整理。上年纪了,不抗折腾、记性也差了:)
吐槽一下金蝶:
因为项目的原因,用友的U9(U2.8)、K3 Cloud 5.0不管是开发和系统,我都接触过(不算精),在可扩展性方面,特别是二开的可扩展性方面,个人觉得K3比U9要好一点(仅个人观点,也希望对此有异议的人一起讨论),但是对于系统实施、维护、开发(包括打包)所必不可少的配套工具的完善程度上,K3远不如U9完善,特别是K3的开发文档、以及工具使用文档,更是为很多在诟病(特别是对于新手来说),希望金蝶能重点完善一下。毕竟赢得客户的依赖不易,不要象中国股市考验小散一样来考验客户、拥趸者的耐心。
安装包文件:
在多方与度娘、论坛求助无果后,开始转过来研究安装包文档。以下内容并非断言,是个人理解。看文件的扩展名【*.kdpkg】,其意义可能理解为Kingdee package,根据经验以及扩展名的理解,这文档应该是压缩包文档。在安装包文档上/右键/7-Zip/提取到,生成对应文件主名称一致的目录,打开目录后包括:


先看文件构成,app.manifest就不用说了,感兴趣的自己看,不清楚问度娘。app.pkgdef,其中app应该是固定名,*.pkgdef,可以理解为Package definition,即是描述类文档,一般都应该是XML,在文件上点右键/Edit with Notepad++(随你想用什么文本编辑器)打开,文件结构如下(截取片段如下):
[code] 19cc8095-a66a-468c-8459-c00ad-xxxxxx
K3Cloud
SmartLink For K3 Cloud
--------------------------------------------------------------------------
SmartLink For K3 Cloud 说明
-编号:ST150908
--------------------------------------------------------------------------

插件编号:ST150908
组 件:
补丁性质:K3 Cloud 功能扩展(工程数据集成接口)
所属系统:
安装方法:
适用范围:

插件发布说明:
1. 安装本插件要求先安装 K/3 Cloud V5.0 正式版
2. K/3 Cloud系统补丁需要更新到【PT097471】

SmartLink
ET
1
XXXXX
[/code] 关于此应用程序定义文件的结构以及意义,根据键名称就可以了解了,在再赘述。 还有2个没有扩展名的文件,文件名具有GUID特性,似曾相识。打开你的解决方案(在BOS IDE中,若不会创建,查论坛上相关帖子),可以看到2个节点,分别是:Assembly Package和MetaData Package,这2个文件应该就是这2个的文档包,继续请出7-Zip提取:
1)ae146bda20614e53910b483e16c13171,打开目录后,发现还有个app.pkgdef,打开正是解决方案的Assembly Package节点,主要看112dde43-dd88-4122-ad45-ee01a725f51f都相同,在解决方案该节点上双击可查看到,大致如下图(结合文件的结构自己看,不再赘述):


2)1181feb7f1724682bc86bae13a34ac7e同样提取到目录,打开app.pkgdef,与上文分析吻合,只不过是多出一些文档,正常,因为在这里曾经定义过很多表单、修改过很多表单,要想发布,这些都需要打包。这里建议重点看一下app.pkgdef文件,对于设计器出问题时,可以在这里直接修改以达到快速解决问题的目的(一切修改、浏览之前,请做好备份),除app.*的2个文件之外,其余类似GUID码的文件全部是元数据文件(没有全部逐个打开,有点武断)。这部分文件,目前看到分以下几类:
2.1)表单定义的文件。一个完整的表单定义,主要由2部分构成,这个可以看解决方案 DataModel\ 下的*.dym(表单定义文件)、*.2052.dymx(表单的多语言定义文件)文件,相同表单的主文件名是相同的,在这个目录中均有对应,只是文件名不同罢了,我抽取了同一表单解决方案目录下的特定表单文件,与提取目录下对应文件对比,内容无差别(只是个别表单文件核对,没有全部核对)。
2.2)SQL脚本文件。这些文件与解决方案下也是对应的。 关于安装包的构成,在构建时,你也可以留意下输出目录下的子目录,也是一致的。AM即Assembly Package DM即MetaData Package。

关于安装包的安装与后台数据库的关系,请等待...