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 ...
随机推荐
- javascript深入浅出图解作用域链和闭包
一.概要 对于闭包的定义(红宝书P178):闭包就是指有权访问另外一个函数的作用域中的变量的函数. 关键点: 1.闭包是一个函数 2.能够访问另外一个函数作用域中的变量 文章首发地址于sau交流学习社 ...
- 死磕 java集合之ConcurrentSkipListSet源码分析——Set大汇总
问题 (1)ConcurrentSkipListSet的底层是ConcurrentSkipListMap吗? (2)ConcurrentSkipListSet是线程安全的吗? (3)Concurren ...
- C# 通俗说 委托(和事件)
1.闲聊 编码一两年, 我走过了字段, 我跑过了类, 却翻不过方法.(不能灵活使用方法吧) (写这篇博客全程听将夜中<永夜>歌曲写完的,一气呵成,安利一下) 2.叙事 我们在编码中,经常捣 ...
- C# 添加Excel表单控件(Form Controls)
在Excel中,添加的控件可以和单元格关联,我们可以操作控件来修改单元格的内容,在下面的文章中,将介绍在Excel中添加几种不同的表单控件的方法,包括: 添加文本框(Textbox) 单选按钮(Rad ...
- Hello World 程序的起源与历史
这是一个最著名的程序.对每一位程序员来说,这个程序几乎是每一门编程语言中的第一个示例程序.那么,这个著名的程序究竟从何而来呢? 实际上,这个程序的功能只是告知计算机显示 Hello World 这句话 ...
- HTML 练习淡入淡出
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Android 9.0适配遇到的问题1
文章同步自javaexception 本周在适配Android 9.0,过程中碰到了小问题 问题1: SSL handshake timed out 解决办法: Android 9.0 开始,默认不允 ...
- ionic cordova build android error: commamd failed with exit code eacces
问题: 电脑的gradle版本为Gradle 5.0,然而 因为 添加的android 平台为6.3.0 gradle 是 4.1版本 电脑已存在 gradle的情况下,add platform 成功 ...
- python3.6+selenium3.13 自动化测试项目实战一(增加自动发送邮件报告接口)
说明: 继实战项目一的基础上添加自动发送报告邮件接口,代码有部分调整,可以结合实战一和上篇文章学习 变动: 1.增加文本文档SendToUserinfo.txt 用来保存邮件接收者的信息 2.修改测试 ...
- spring boot添加 LocalDateTime 等 java8 时间类序列化和反序列化的支持
由于项目将原有的 Date类型的字段改造为 LocalDate,LocalDateTime,LocalTime 类型, 发现 spring 对项目的时间格式无法自动转换,故需手动配置下. 在sp ...