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

C# Dynamics CRM/Dynamics 365以编程方式应用解决方案升级,c#,microsoft-dynamics,dynamics-crm-online,dynamics-crm-2016,C#,Microsoft Dynamics,Dynamics Crm Online,Dynamics Crm 2016,在将解决方案从一个实例移动到另一个实例时,应该应用一组规则,因此可以使用自定义工具进行所有更改,并将解决方案导出和导入到另一个实例。下一个问题是: 如何使用C#实现“解决方案升级应用”? 可以通过设置(CRM 2016 SDK)轻松导入“持有状态” 这允许在目标环境中拥有保留解决方案,但经过一些测试后,我们仍然无法将此升级应用于以前安装的解决方案 先谢谢你 导入保留解决方案后,可以使用DeleteAndPromoteRequest对其进行升级 一个基本的例子: public Guid Upgra

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

如何使用C#实现“解决方案升级应用”?

可以通过设置(CRM 2016 SDK)轻松导入“持有状态”

这允许在目标环境中拥有保留解决方案,但经过一些测试后,我们仍然无法将此升级应用于以前安装的解决方案


先谢谢你

导入保留解决方案后,可以使用
DeleteAndPromoteRequest
对其进行升级

一个基本的例子:

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

    var response = (DeleteAndPromoteResponse)service.Execute(request);
    return response.SolutionId;
}
deleteandpromoterensponse
中,
SolutionId
属性保存升级解决方案的
Guid

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

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