Dynamics CRM/Dynamics 365 以编程方式应用解决方案升级

Dynamics CRM/Dynamics 365 Apply solution upgrade programmatically

将解决方案从一个实例移动到另一个实例时应应用一组规则,因此有一个想法是使用自定义工具来进行所有更改,将解决方案导出和导入到另一个实例。接下来的问题是:

"solution upgrade applying"如何用C#实现?

通过设置 (CRM 2016 SDK)

可以轻松导入 "as holding"
 var import = new ImportSolutionRequest();
 import.HoldingSolution = true;

这允许在目标环境中保留解决方案,但经过一些测试后我们仍然无法"Apply"对之前安装的解决方案进行此升级。

提前谢谢你。

导入保留解决方案后,您可以使用 DeleteAndPromoteRequest.

对其进行升级

一个基本的例子:

public Guid UpgradeSolution(string solutionUniqueName, IOrganizationService service)
{
    var request = new DeleteAndPromoteRequest
    {
        UniqueName = solutionUniqueName
    };

    var response = (DeleteAndPromoteResponse)service.Execute(request);
    return response.SolutionId;
}

DeleteAndPromoteResponse 中,SolutionId 属性 持有提升解决方案的 Guid