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