2011-10-18 92 views
3

我们正在与另一家咨询公司共同开展一个项目。大多数情况下,我们每个人都有自己的领域,但有一点交叉。合并2个CRM 2011非托管解决方案

假设我们都修改具有冲突变化的实体。使用“最后一个获胜”规则,最后导入的任何解决方案都将实施其更改。

有没有一种工具或一些已知的方法来识别这些冲突之前导入完成,以帮助我们管理这个问题?

+0

您可能会在这里找到答案(http://blogs.msdn.com/b/devkeydet/archive/2012/01/03/merging-crm-2011-solutions.aspx)。解释了“每个开发者一个组织”的方法。 – Roman

回答

2

我已经遇到了这么多次,我的方法是导出自定义项并使用代码比较工具(如WinDiff或BeyondCompare)检查自定义文件(xml文件)的内容。

+1

WinDiff&BeyondCompare并不理想,特别是如果您使用语言包,因为它们无法识别xml元素中的有效重新排序。关键的前提是使用Solution Packager将解决方案分解为可管理的XML块: https://msdn.microsoft.com/en-us/library/JJ602987.aspx http://waelhamze.com/ 2014/01/12/dynamics-crm-parallel-development-with-solution-packager/ –

1

这并非严格意义上的“最后一个赢”场景,有一个允许某种共存的模式,例如,如果您同时添加字段到同一个表单。

需要牢记的一点是,您应该在链接到独特发布服务器的非托管解决方案中执行所有自定义设置,并且该发布服务器应该有唯一的前缀,因此您可以使用John_作为所有新实体的前缀,领域等,另一家公司可能会使用Acme_或任何适合他们的东西。

这有助于减少直接冲突,如既增加一个字段名称相同,但不同类型的(他们不会有相同的架构名称,因为不同的prefices的)

+0

永远不要在同一个组织中共同开发2个非托管解决方案,否则你会在解决方案之间不经意间产生交叉依赖关系。有时甚至使整个解决方案无法部署。 –

0

保持你的表单组件在不同的标签和章节,如果你们都使用托管解决方案,表格定制将被合并。同样的网站地图&功能区定制可以独立开发,如果您将更改分组在一起,您可以让CRM为您合并解决方案。

不要将其他咨询公司的主要定制解决方案导入到您的开发环境中,以避免在它们之间创建相互依赖关系,但是您可能会引用相同的实体。如果两家咨询公司所需要的实体都是定制的,那么您需要就预先包含在“核心”解决方案中的内容达成一致;开发,共享并安装在所有开发环境中作为先决条件。

根据项目的复杂程度,您可能会发现托管一个共享解决方案的IFD临时环境,这两家公司都可以用来解决冲突并作为有用的测试环境。

同意前期如何投诉& UAT问题应该报告,调查&解决并明确界定工作分工。

相关问题