在D365 CE开发当中,有一个非常痛苦的问题就是开发,测试环境中的export import solution 部署问题.

Devops中能很好的解决这个问题. 

工作原理:

在Azure Devops/VSTS Pipeline中, 如果需要实现设置集成/部署的功能, 我们需要2个pieplines, 一个是Build, 另外一个是 Release.

Build 是用来触发Export CRM solution 从 Source Environment 并且把.zip solution文件保存在Azure Artifacts drop 文件夹中.

Release 是用来把保存在Azure Artifacts drop 文件夹中的.zip 文件在Target Environment中触发Import 和 publish solution

创建Pipeline:

Build Pipeline:

1. 首先我们创建一个solution在Source Environment 中:

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

2. 我们要在Devops中安装 Dynamics 365 Build Tools.

Dynamics 365 Build Tools 是一个已经配置好的三方Auzre Devops Pepelines. 可以直接用来做solution部署和其他的功能

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

3. 安装好Dynamics 365 Build Tools之后, 我们可以在Devops 中创建 Pipeline了

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

 4.  点击”New Pipeline”之后,我们需要选择使用 visual designer来创建

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

5. 我们这里使用 Azure Repos Git, 可以选择Github或者其他方式的source

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

6. 接下来我们需要一个empty的template

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

7. 选择empty job之后, 我们需要把agent pool 改为hosted

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

8. 我们在第一个agent job 添加一个新的task: MSCRM Tool Installer. 

ps: 如果这里搜不到Dynamcis 365 Build Tools, 那说明Devops还没有安装成功这个pipeline. 需要去auzre market重新安装.

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

9.下面我们要添加一个新的task “MSCRM Export Solution”在MSCRM Publish Customizations 之后.

并且这里的CRM Connection String需要设置:AuthType=Office365;Username=xxx@xxx.onmicrosoft.com; Password=xxx;Url=https://xxx.crm5.dynamics.com/

我们的output path 需要改为$(build.ArtifactStagingDirectory)

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

10. 接下来我们需要复制我们的.zip文件到azure devops文件夹底下

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

11.全部设置好保存之后,让我们run一下这个pipeline. 我们看到一共使用了28s的时间来运行这个pipeline

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

到这里我们就成功了一半. 我们把export的 solution已经成功上传到了azure artofact drop 文件夹里. 下面我们需要获取到这个.zip 文件并且import 到我们的target environment中.

Release Pipeline:

之前有说过, release pipeline是用来import solution作用的.

1. 首先我们需要创建一个release pipeline,并且选择empty job, 并且把artifact选为刚才我们做好的build pipeline

在Pipeline -> Releases ->  Create Release

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

2. 接下来我们需要设置这个artifacts.

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

3. 编辑好之后,我们需要给release pipeline添加tasks

这里需要添加两个tasks:

  1. MSCRM Publihs Customizations

  2. MSCRM Export Solution

ps: Export Solution 里面的配置按照项目需求可以做调整.这里我们就Export unmanaged solution

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

 使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

4. 设置好之后我们保存,并且run一下这个release pipeline

并且我们查看target environment, unmanaged solution已经被导入了.

使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园

 使用MS Devops 来部署D365 CE(CRM) Solution-冯金伟博客园