关于CRM Solution,我准备写两到三篇的博客来作下介绍:包括一些基本信息,超大solution,还有增量更新solution操做等。html
CRM中的component,都是放在一个名叫Solution的容器中的,即便是刚刚新建的CRM Organization,也会有一个名叫Default Solution的容器。那么Solution这个容器呢,一方面是为了隔绝component间的冲突和影响;另外一方面就是为了便于维护和管理。不少时候,工做中面对的CRM环境不单单只有一套,可能有生产环境,Sandbox环境等。这个时候,咱们就会涉及Component在不一样CRM环境之间的导出导入。也许你会疑惑,为何再也不各个环境里都新建一套呢?post
这是由于,新建的Component每每都有本身的惟一标识,而在不一样环境里新建的Component,惟一标识能够认为确定是不同的。这个若是不注意,就会致使一系列的问题,包括定制很差用,字段值不匹配等等。因此,咱们就须要使用Solution,来实现Component的同步操做。一个Solution是一个zip包,包里的结构,依赖于放入其中的Component,基本是固定的,来看个例子:url
这个就是zip包里的内容了。WebResouces文件夹里放着WebResource components,ContentType.xml文件里是MIME type信息,customizations.xml是具体的component描述信息,包括Entity,Attributes,form,relationship,global optionset等,solution.xml则至关因而对solution里有哪些component的一个声明。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的存在。orm
对于Online环境,CRM支持的最大solution大约是30MB,而OnPremise环境,CRM支持的最大Solution是6MB。固然,对于OnPremise而言,这个Solution的大小是能够修改的,这里咱们就不得不说超大Solution的问题了。xml
Solution有两种形式上的过大,一种是zip过大,而另外一种是zip包里的内容过大,而这两种状况的表现也不同。zip包过大,每每致使的是导入超时;而zip包里的内容过大,则是在CRM Solution界面点击Import,而后Browse选择Solution,点击Next,而后......就没有而后了,界面会一直loading。htm
详细的解决方案能够参考我以前的博客:Dynamics CRM 2015-超大Solution导入问题。blog
而下一篇呢,则准备依据Solution增量的特色,来进一步处理咱们的Solution信息。ip