License2.xml和License.xml有什么区别?

格式变化

新License结构:

对比旧License,有哪些变化

  1. 一个客户购买多套版本产品只有一个license文件
  2. 新license文件合并多套版本的旧license数据
  3. license节点上增加了version属性区别版本,增加了productVersion属性,配合Web.config配置ERP-License-ProductVersion取数license数据
  4. license签名使用私钥签名,私钥以X509证书方式保存。
  5. 新license文件编码是utf-8,旧license文件编码是gb2312。

ERP如何从新License中读取到旧的License?

1、从WebConfig的AppSettings节点中读取到属性ERP-License-ProductVersion的值。

System.Configuration.ConfigurationManager.AppSettings["ERP-License-ProductVersion"]

2、在XML中使用XPath检索

xmlDocument.SelectSingleNode("/licenseArray/licenses/license[@productVersion=\"" + ProductVersion + "\"]")

3、上述节点的查询结果的OuterXml就是旧License的内容.

核心ERP的调整

影子License其实就是旧版本license.xml文件,时随着新license2.xml自动生成。 这样核心ERP读取license信息的代码不用调整,依旧按照原来的方式读取license.xml文件,最大限制减小对核心ERP的影响。

  1. 影子License会随License2.xml自动刷新
  2. 读取License信息,可以直接读取旧License文件,
  3. Web.config没有配置ERP-License-ProductVersion,则使用License.xml
  4. Web.config配置ERP-License-ProductVersion,则使用License2.xml

此时ERP-License-ProductVersion版本号必须有一个对应License2.xml中license节点属性productVersion值

重构ERP的调整

  1. bin下没有旧License文件
  2. 只能读取License2.xml文件

重构ERP只存在一个license文件,且必须是License2.xml文件,存放在bin目录中。 web.config必须配置ERP-License-ProductVersion,且必须有一个对应License2.xml中license节点属性productVersion值