Dynamics 365-关于Solution的那些事(一)
关于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的那些事(一)的更多相关文章
- Dynamics 365-关于Solution的那些事(二)
接着上一篇的说,现在有一个已知前提:Solution的增量特性.然后我们再思考这么一个场景,项目开发过程中,存在多次迭代的情况,每次迭代可能涉及到的solution是同一个,唯一区别的,就是solut ...
- Dynamics 365-关于Solution的那些事(三)
这一篇的内容,是关于Solution的使用建议的,如果大家有什么实用的建议,欢迎留言讨论. 一. 版本控制 Solution是有版本号的,率性的人可能在新建一个solution的时候,直接赋值1.0, ...
- 升级本地部署的CRM到Dynamics 365及部分新特性介绍。
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复241或者20161226可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Introduction to Microsoft Dynamics 365 licensing
Microsoft Dynamics 365 will be released on November 1. In preparation for that, Scott Guthrie hosted ...
- 为Dynamics 365写一个简单程序实现解决方案一键迁移
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复258或者20170627可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- dynamics 365 AI 解决方案 —— 微软布局
核心提示:微软在 Office365.Azure 云.Dynamics365 上进行人工智能技术的部署,野心不小. 微软在2016年9月宣布组建自己的 AI 研究小组.该小组汇集了超过 5000 名计 ...
- 安装完成Dynamics 365 CE后别忘了更改维护作业的运行时间
摘要: 微软动态CRM专家罗勇 ,回复309或者20190308可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 安装完毕Dy ...
- 解读 --- 基于微软企业商务应用平台 (Microsoft Dynamics 365) 之上的人工智能 (AI) 解决方案
9月25日微软今年一年一度的Ignite 2017在佛罗里达州奥兰多市还是如期开幕了.为啥这么说?因为9月初五级飓风厄玛(Hurricane Irma) 在佛罗里达州登陆,在当地造成了挺大的麻烦.在这 ...
- dynamics 365 AI 解决方案 —— 介绍
Digital transformation has been reshaping our world and artificial intelligence (AI) is one of the n ...
随机推荐
- MySQL 复制 - 性能与扩展性的基石 2:部署及其配置
正所谓理论造航母,现实小帆船.单有理论,不动手实践,学到的知识犹如空中楼阁.接下来,我们一起来看下如何一步步进行 MySQL Replication 的配置. 为 MySQL 服务器配置复制非常简单. ...
- SpringCloud学习系列之三----- 断路器(Hystrix)和断路器监控(Dashboard)
前言 本篇主要介绍的是SpringCloud中的断路器(Hystrix)和断路器指标看板(Dashboard)的相关使用知识. SpringCloud Hystrix Hystrix 介绍 Netfl ...
- Java基础练习4(内存管理)
请根据如下程序代码,画出对应的内存管理图(不需要画方法区),并写出输出结果. 1. public class Cell{ int row; int col; public Cell(int row,i ...
- Java并发——CAS
什么是CAS? CAS是Compare And Swap的简称.在Java中有很多实现,比如compareAndSwapObject()方法,或者compareAndSwapInt()方法等.多用在包 ...
- 深入浅出—Redis集群的相关详解
前言: 这篇文章主要介绍了Redis集群的相关,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值. 注意!要求使用的都是redis3.0以上的版本,因为3.0以上增加了red ...
- Git使用详细教程(9):git log
目录 格式化 检索 显示最近提交 Git中使用git log查看提交日志 如果日志很多的话,默认会以分页方式展示 空格可以翻下一页,ctrl+b翻上一页,q退出 格式化 如果想获取每条日志的简要信息, ...
- SQLite新建数据库及txt文件(CSV文件)导入
1.安装准备: Windows系统环境: 安装:SQLiteExpert 及 官网的SQLite tool 我们要用到其中的SQLite.exe 地址:https://www.sqli ...
- 关于windows系统无法更新的解决方法
操作系统无法更新解决方案! 1.检查网络连接是否正常: 2.检查控制面板设置,windows更新是否开启: 3.检查计算机-管理-服务和应用程序-服务组件里的windows update是否开启: 4 ...
- 个人整理的 Windows 下 .NET 开发必装的软件
注: 最后更新时间:2019-03-15 一..NET 开发 1. 必装 软件名称 说明 下载地址 JetBrains Toolbox JetBrins 全家桶管理工具. 下载地址 JetBrains ...
- AI应用开发实战 - 手写识别应用入门
AI应用开发实战 - 手写识别应用入门 手写体识别的应用已经非常流行了,如输入法,图片中的文字识别等.但对于大多数开发人员来说,如何实现这样的一个应用,还是会感觉无从下手.本文从简单的MNIST训练出 ...