接着上一篇的说,现在有一个已知前提: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太大?这都不是事......

  

Dynamics 365-关于Solution的那些事(二)的更多相关文章

  1. Dynamics 365-关于Solution的那些事(三)

    这一篇的内容,是关于Solution的使用建议的,如果大家有什么实用的建议,欢迎留言讨论. 一. 版本控制 Solution是有版本号的,率性的人可能在新建一个solution的时候,直接赋值1.0, ...

  2. Dynamics 365-关于Solution的那些事(一)

    关于CRM Solution,我准备写两到三篇的博客来做下介绍:包括一些基本信息,超大solution,还有增量更新solution操作等. CRM中的component,都是放在一个名叫Soluti ...

  3. 升级本地部署的CRM到Dynamics 365及部分新特性介绍。

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复241或者20161226可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  4. 自定义适用于手机和平板电脑的 Dynamics 365(二):窗体自定义项

    适用于手机的 Dynamics 365 和 适用于平板电脑的 Dynamics 365 使用窗体作为 Web 应用. 窗体在应用程序中的显示方式为移动体验进行了优化. 下图显示了从 Web 应用程序到 ...

  5. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之十二:新增SQL Server可用性副本

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  6. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之二:创建域控虚拟机

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  7. dynamics 365 AI 解决方案 —— 微软布局

    核心提示:微软在 Office365.Azure 云.Dynamics365 上进行人工智能技术的部署,野心不小. 微软在2016年9月宣布组建自己的 AI 研究小组.该小组汇集了超过 5000 名计 ...

  8. Introduction to Microsoft Dynamics 365 licensing

    Microsoft Dynamics 365 will be released on November 1. In preparation for that, Scott Guthrie hosted ...

  9. 为Dynamics 365写一个简单程序实现解决方案一键迁移

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复258或者20170627可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

随机推荐

  1. .NET Core IdentityServer4实战 第二章-OpenID Connect添加用户认证

    内容:本文带大家使用IdentityServer4进行使用OpenID Connect添加用户认证 作者:zara(张子浩) 欢迎分享,但需在文章鲜明处留下原文地址. 在这一篇文章中我们希望使用Ope ...

  2. RabbitMQ的介绍及使用进阶(Docker+.Net Core)

    目录: 一.什么是RabbitMQ 二.RabbitMQ运用场景 三.RabbitMQ优势及特点 四.Centos7中Docker安装RabbitMQ 五..Net Core 中使用RabbitMQ ...

  3. Electron学习笔记(一)

    Electron是使用Javascript.HTML5技术构建跨平台桌面应用的技术,是目前非常活跃的一项技术,其中比较有名气的应用有微软的VS Code. 创建一个Electron应用的方式有很多,G ...

  4. JS 各种宽高

    1.window的各种宽高   outerWidth.innerWidth.outerHeight.innerHeight outerHeight 获取浏览器窗口外部的高度(单位:像素).表示整个浏览 ...

  5. USB总线标准

    1.USB总线类型: OHCI(Open Host Controller Interface)是支持USB1.1的标准,但它不仅仅是针对USB,UHCI(Universal Host Controll ...

  6. Vue.js 学习笔记 第3章 计算属性

    本篇目录: 3.1 什么是计算属性 3.2 计算属性用法 3.3 计算属性缓存 模板内容的表达式常用语简单的运算,当其过长或逻辑复杂时,会难以维护,本章的计算属性就是用于解决该问题的. 3.1 什么是 ...

  7. openlayers4 入门开发系列之地图展示篇(附源码下载)

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  8. Android路由框架-ARouter详解

    文章大纲 一.页面路由基本介绍1.什么是页面路由2.为什么要使用页面路由二.页面路由框架ARouter介绍1.常用功能介绍2.常见应用场景三.源码下载四.参考文章   一.页面路由基本介绍 1.什么是 ...

  9. 对比 Git 与 SVN,这篇讲的很易懂

    ---恢复内容开始--- 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯工蜂发表于云+社区专栏 导语 本文从 Git 与 SVN 的对比入手,介绍如何通过 Git-SVN 开始 ...

  10. 【原】无脑操作:TypeScript环境搭建

    概述:本文描述TypeScript环境搭建,以及基于VSCode的自动编译设置和调试设置.网络上很多相应文章的方式过时了或者无法试验成功. ------------------------------ ...