Microsoft Dynamics CRM 插件 - 通过托管解决方案停用或禁用插件 SDK 消息处理步骤

Microsoft Dynamics CRM Plugin - Deactivate or disable plugin SDK message processing step via managed solution

我通过托管解决方案为我的实体引入了一个在更新 SDK 消息处理步骤中注册的插件。 现在,我想通过托管补丁解决方案禁用此步骤。

我可以从自定义 window 中停用 SDK 消息处理步骤作为非托管更改。但是,如果我将其导出为托管解决方案,则更改不会反映在 solution.xml 或 customizations.xml 文件中。

customizations.xml 文件中的 SdkMessageProcessingStep 节点似乎没有类似 IsActive 或 IsEnabled 的属性。

你能告诉我如何实现吗?

  <SdkMessageProcessingSteps>
    <SdkMessageProcessingStep Name="PreValidationUpdatePlugin: Update of entity" SdkMessageProcessingStepId="{a496dc85-87b3-e911-8199-000d3af937a2}">
      <PluginTypeName>PreValidationUpdatePlugin, PreValidationUpdatePlugin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=11db56e249ade881</PluginTypeName>
      <PluginTypeId>a7d27d5a-6d79-4d50-b898-d41b67ed6c89</PluginTypeId>
      <PrimaryEntity>custom_entity</PrimaryEntity>
      <AsyncAutoDelete>0</AsyncAutoDelete>
      <Description>Update of custom_entity</Description>
      <FilteringAttributes>name</FilteringAttributes>
      <InvocationSource>1</InvocationSource>
      <Mode>0</Mode>
      <Rank>1</Rank>
      <SdkMessageId>{20bebb1b-ea3e-db11-86a7-000a3a5473e8}</SdkMessageId>
      <EventHandlerTypeCode>4602</EventHandlerTypeCode>
      <Stage>20</Stage>
      <IsCustomizable>1</IsCustomizable>
      <IsHidden>0</IsHidden>
      <SupportedDeployment>0</SupportedDeployment>
      <IntroducedVersion>1.0</IntroducedVersion>
      <SdkMessageProcessingStepImages>
        <SdkMessageProcessingStepImage Name="Image">
          <SdkMessageProcessingStepImageId>{bcff8b8d-87b3-e911-8199-000d3af937a2}</SdkMessageProcessingStepImageId>
          <Attributes></Attributes>
          <EntityAlias>Image</EntityAlias>
          <ImageType>0</ImageType>
          <MessagePropertyName>Target</MessagePropertyName>
          <IsCustomizable>1</IsCustomizable>
        </SdkMessageProcessingStepImage>
      </SdkMessageProcessingStepImages>
    </SdkMessageProcessingStep>
  </SdkMessageProcessingSteps>

您必须在目标系统上使用插件注册工具来禁用插件步骤。解决方案不保留插件步骤的状态,因此无法通过解决方案做到这一点。

您可以在客户的解决方案导入指南中将其记录为 post 解决方案导入任务。

更新

我没有这样做,但我相信您可以将插件步骤作为包部署程序的一部分禁用。请参阅下面的文档 link 中创建包的步骤 5,您可以在其中插入 SDK 代码。 Create packages for the Dynamics 365 for Customer Engagement Package deployer

SDK代码参考这里Programmatically Disabling the Plugin Step