关于CRM Solution,我准备写两到三篇的博客来做下介绍:包括一些基本信息,超大solution,还有增量更新solution操作等。

  CRM中的component,都是放在一个名叫Solution的容器中的,即使是刚刚新建的CRM Organization,也会有一个名叫Default Solution的容器。那么Solution这个容器呢,一方面是为了隔绝component间的冲突和影响;另一方面就是为了便于维护和管理。很多时候,工作中面对的CRM环境不仅仅只有一套,可能有生产环境,Sandbox环境等。这个时候,我们就会涉及Component在不同CRM环境之间的导出导入。也许你会疑惑,为什么不再各个环境里都新建一套呢?

  这是因为,新建的Component往往都有自己的唯一标识,而在不同环境里新建的Component,唯一标识可以认为肯定是不一样的。这个如果不注意,就会导致一系列的问题,包括定制不好用,字段值不匹配等等。所以,我们就需要使用Solution,来实现Component的同步操作。一个Solution是一个zip包,包里的结构,依赖于放入其中的Component,基本是固定的,来看个例子:

  

  这个就是zip包里的内容了。WebResouces文件夹里放着WebResource components,ContentType.xml文件里是MIME type信息,customizations.xml是具体的component描述信息,包括Entity,Attributes,form,relationship,global optionset等,solution.xml则相当于是对solution里有哪些component的一个声明。

  在CRM导出Solution的时候,可以导出Unmanaged Solution,以及Managed Solution。Unmanaged Solution,主要是开发过程中使用,如果在CRM环境删除Unmanaged Solution,solution里的component依然在环境中存在;Managed Solution,是在生产环境中使用,因为Managed Solution,不可以再导出,这样就避免了定制被恶意修改的问题,而在CRM环境删除Managed Solution,Solution里的Component也会随之删除。另外一点需要注意的是,Solution是增量的,也就是说,比如你先导入一个Entity,里面有字段A,再导入这个Entity的时候,字段A在solution中去掉了,但是这个修改后Solution的导入,不会影响环境中字段A的存在。

  对于Online环境,CRM支持的最大solution大约是30MB,而OnPremise环境,CRM支持的最大Solution是6MB。当然,对于OnPremise而言,这个Solution的大小是可以修改的,这里我们就不得不说超大Solution的问题了。

  Solution有两种形式上的过大,一种是zip过大,而另一种是zip包里的内容过大,而这两种情况的表现也不一样。zip包过大,往往导致的是导入超时;而zip包里的内容过大,则是在CRM Solution界面点击Import,然后Browse选择Solution,点击Next,然后......就没有然后了,界面会一直loading。

  详细的解决方案可以参考我之前的博客:Dynamics CRM 2015-超大Solution导入问题

  而下一篇呢,则准备依据Solution增量的特点,来进一步处理我们的Solution信息。

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

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

    接着上一篇的说,现在有一个已知前提:Solution的增量特性.然后我们再思考这么一个场景,项目开发过程中,存在多次迭代的情况,每次迭代可能涉及到的solution是同一个,唯一区别的,就是solut ...

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

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

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

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

  4. Introduction to Microsoft Dynamics 365 licensing

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

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

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

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

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

  7. 安装完成Dynamics 365 CE后别忘了更改维护作业的运行时间

    摘要: 微软动态CRM专家罗勇 ,回复309或者20190308可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 安装完毕Dy ...

  8. 解读 --- 基于微软企业商务应用平台 (Microsoft Dynamics 365) 之上的人工智能 (AI) 解决方案

    9月25日微软今年一年一度的Ignite 2017在佛罗里达州奥兰多市还是如期开幕了.为啥这么说?因为9月初五级飓风厄玛(Hurricane Irma) 在佛罗里达州登陆,在当地造成了挺大的麻烦.在这 ...

  9. dynamics 365 AI 解决方案 —— 介绍

    Digital transformation has been reshaping our world and artificial intelligence (AI) is one of the n ...

随机推荐

  1. 如何使用AWS和Azure的配置存储服务保存读取配置

    原文:Want to yank configuration values from your .NET Core apps? 作者:pauljwheeler 译文:https://www.cnblog ...

  2. 史上最最靠谱,又双叒叒简单的基于MSXML的XML解析指南-C++

    目录 史上最最靠谱,又双叒叒简单的基于MSXML的XML解析指南 流程设计 xml信息有哪几种读取形式(xml文件或wchar) 如何选取节点,and取节点属性有哪些方法? IXMLDOMNode与I ...

  3. Error RZ3007: Targeted tag name cannot be null or whitespace

    Step 1: Disable precompile updating below property in csproj file: <MvcRazorCompileOnPublish>f ...

  4. Asp.net Core 2.1新功能Generic Host(通用主机),了解一下

    什么是Generic Host ? 这是在Asp.Net Core 2.1加入了一种新的Host,现在2.1版本的Asp.Net Core中,有了两种可用的Host. Web Host –适用于托管W ...

  5. token:NLP之词形还原

    已迁移到我新博客,阅读体验更佳token:NLP之词形还原 完整代码实现放在我的github上:click me 一.任务描述 形态还原算法: 输入一个单词 如果词典里有该词,输出该词及其属性,转4, ...

  6. 微信小程序 组件通信相关知识整理

    1.自定义组件间通信与事件 https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/events.htm ...

  7. 移动端布局方案汇总&&原理解析

    阿里flexible布局 - 版本1.x 该布局于 2017年8月9日被2.0版本取代 实现原理 假设(UI稿750px宽) 设置viewport的 scale = 1/window.devicePi ...

  8. NFS挂载异常 mount.nfs: Input/output error

    [root@localhost ~]# vi /etc/exports #增加/nfs 192.168.10.132(rw,no_root_squash,no_all_squash,async) [r ...

  9. python3 装饰器初识 NLP第三条

    还是先抄一条NLP假设... 三,有效果比有道理更重要   光说做法有道理或者正确而不顾是否有效果,是在自欺欺人. 在三赢(我好,人好,世界好)的原则基础上追求效果,比坚持什么是对的更有意义. 说道理 ...

  10. ASP.NET Core 实战:将 .NET Core 2.0 项目升级到 .NET Core 2.1

    一.前言  最近一两个星期,加班,然后回去后弄自己的博客,把自己的电脑从 Windows 10 改到 Ubuntu 18.10 又弄回 Windows 10,原本计划的学习 Vue 中生命周期的相关知 ...