6

我们刚刚开始在本地开发和实施 Dynamics crm 2011。是否可以实现代码签入自动化以将代码从开发系统推广到测试系统?看起来这将涉及包含已签入的开发代码的非托管解决方案的导出/导入。我无法找到有关此功能的 API。

如果那不可能,你能走多远?看起来有 API 可以自动上传 web 资源和插件(例如 sdk 中的 webresourceutility),但是仍然需要手动链接到要使用它们的表单(在 javascript 的情况下) ETC)。是否有人在自动化部分 CRM 环境方面取得了进展?

作为参考,我们正在使用 vs 2010 和 tfs 2010,使用 MSuild 进行当前的持续集成。

4

2 回答 2

5

我们有一些技术可以为我们提供非常稳固的 CI 结构。

插件

  • 我们所有的插件都是在签入时编译的
  • 我们编写的所有插件代码都具有自注册详细信息作为组件的一部分。
  • 我们编写了一个工具,将插件播放到数据库中,首先根据自注册详细信息卸载旧插件。

解决方案

  • 我们在自定义组织中有一个非托管解决方案,该解决方案干净且不包含数据。开发是在这个组织之外进行的。它有实体、表单、Jscript、视图、图标、角色等。
  • 这个定制数据库包含我们从第三方导入的所有解决方案,并且定制化到我们的解决方案中,这是最终导入到目的地组织。
  • 解决方案导出为托管和非托管并保存到 TFS
  • 我们将 JScript 和 SSRS RDL 存储在 TFS 中,并有一个自定义工具在导出之前将它们播放到自定义数据库中。
  • 我们还有一个 SiteMap 非托管解决方案,它被导出为非托管(以确保我们得到我们所追求的最终结果站点地图)

部署

我们有一个 UI 和命令行驱动的工具,它执行以下操作:-

  • 针对特定组织
  • 将自定义托管解决方案导入选定的环境。例如测试。另外导入非托管站点地图。
  • 卸载现有的解决方案(我们更新 solution.xml 文件,根据导入时的日期/时间为其命名)
  • 安装/卸载插件代码
  • 安装任何自定义 SQL 脚本(用于 RDL)
  • 重新启用重复检测规则
  • 播放我们在源代码控制下存储的某些元数据。例如,我们构建的自定义报告实体具有附件和 XML 配置。

它并不完全完美,但通过命令行,我们每晚刷新 TEST 和所有开发人员 PC。每个组织安装和卸载旧解决方案大约需要 1 小时。

于 2012-04-18T12:49:59.547 回答
4

我们将 CI 广泛用于 Dynamics CRM。对于管理解决方案,我建议使用“干净的”Dynamics CRM 实施,它将成为您的解决方案和“域数据”的主控。有关导入解决方案,请参阅http://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.importsolutionrequest.aspx。另请查看 - http://msdn.microsoft.com/en-us/library/hh547388.aspx

于 2012-04-13T05:35:50.730 回答