• Dynamics 365-关于Solution的那些事(二)


       接着上一篇的说,现在有一个已知前提:Solution的增量特性。然后我们再思考这么一个场景,项目开发过程中,存在多次迭代的情况,每次迭代可能涉及到的solution是同一个,唯一区别的,就是solution里的component有一些修改或增加。随着迭代的进行,solution里的components会越来越多,而每次solution导入的components全是这次迭代的内容么?如果之前的components又覆盖了一遍,如何确保不影响生产环境已有的业务呢?我们很自然地就会想,可不可以修改solution,让它保持只含有迭代涉及的定制信息,以及Solution的描述信息,剩下的都不要。而这篇的内容就是为了解决这个问题的。

      components的修改涉及到两种:一种是整个component的增加和删除,而另一种则是对component进行内容上的增加和删除。

      1. 整个component的增加和删除

      这个简单点的操作,就是在CRM上直接进行增删。

      

      点击Remove或者Add Existing,来对solution里的component进行操作,注意删除是说把component从当前的solution移除出去,而不是在环境里把它删除掉,所以一定不要误点了Delete。

      这里为了接下来的内容,我们不采用这种方式,而是直接对solution的zip进行处理。在CRM中Export Solution,然后解压,会看到有这些文件。

      

      首先我们打开customizations.xml,找到关于Opportunity的Entity节点信息,把这个节点删掉。

      

      接着再找到相关的EntityMap节点信息,把它也删除掉

      

      这样这个xml关于Opportunity的描述信息我们就清理干净了。

      接下来再打开solution.xml,这里也会有关于Opportunity的描述信息,把RootComponent删掉。

      

      然后还把MissingDependency节点都删掉。

      

      这就等价于在CRM上把Opportunity Component从solution中remove掉,之后把文件再压缩到zip包里,更新后的solution就大功告成了。

      2. Component内容上的修改

      再来想象个场景,你的solution里有100个Entity,关于这100个Entity这次迭代的内容,是每个Entity上都新添加了一个名叫new_LastStage的字段,然后你需要将这部分内容更新到生产环境里,怎么实现呢?这个时候,solution的增量特性就很有用了,我们是不是可以这么想,每个Entity都只包含new_LastStage字段,其他的内容都去掉,然后再import到环境里,因为是增量的,所以能达到效果,实现了字段的添加。

      接下来就说说如何修改。

      打开customizations.xml,找到Entities节点,以一个Entity为例。

      

      attributes节点里放了这个Entity的所有字段,除了new_LastStage,我们把其它的attributes删除,这样我们就只保留了要添加的字段,是不是很简单呢!进一步而言,我们完全可以控制Solution里只有我们想要的信息。上面的例子里,如果只是新加字段,不涉及form,view的改变,那我们还可以把form和view的节点内容清空;如果不涉及relationship添加,我们还可以把EntityMaps,EntityRelationships清空,这样就大大减小了solution的复杂度,最后你会发现,环境不给力?Solution太大?这都不是事......

      

  • 相关阅读:
    再回首,Java温故知新(八):Java基础之字符串
    《Prism 5.0源码走读》 设计模式
    《Prism 5.0源码走读》Bootstrapper
    VS编译时自动下载NuGet管理的库
    《Prism 5.0源码走读》Prism 5.0简介
    代码阅读
    如何建设个人品牌
    Hexo建站教程
    Codeforce:131A. cAPS lOCK
    一文看懂《最大子序列和问题》
  • 原文地址:https://www.cnblogs.com/yobyron/p/9682117.html
Copyright © 2020-2023  润新知