插件注册中未显示自定义工作流 Activity

Custom Workflow Activity not showing in Plugin Registration

有人可以指出我在这里做错了什么吗?

我使用此示例 Create a custom workflow activity 创建了一个自定义工作流 Activity。但这在插件注册工具中并未显示为 plugin/activity 类型。见下图:

我下面 activity 的示例代码:

代码已更新

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Activities;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Workflow;

namespace TestCustomWorkflowActivity
{
    public class SampleCustomActivity : CodeActivity
    {
        protected override void Execute(CodeActivityContext executionContext)
        {
            //Create the tracing service
            ITracingService tracingService = executionContext.GetExtension<ITracingService>();

            //Create the context
            IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>();
            IOrganizationServiceFactory serviceFactory = executionContext.GetExtension<IOrganizationServiceFactory>();
            IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

        }
    }
}

平台
Dynamics CRM 2013 On Premises v 6.1.2.112(已安装 SP1 UR2)
动态 CRM 2015 在线

.NET Framework 版本
4.0

你持有的class是否需要public?

class TestWfActivity

应该是

public class TestWfActivity

或者 Activity class 应该直接驻留在您的命名空间中,而不是独立于 TestWFActivity class。

试试 -

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Activities;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Workflow;

namespace TestCustomWorkflowActivity
{
    public class TestWfActivity
    {
        public class SampleCustomActivity : CodeActivity 
        {
            protected override void Execute(CodeActivityContext executionContext)
            {
                //Create the tracing service
                ITracingService tracingService = executionContext.GetExtension<ITracingService>();

                //Create the context
                IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>();
                IOrganizationServiceFactory serviceFactory = executionContext.GetExtension<IOrganizationServiceFactory>();
                IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Activities;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Workflow;

namespace TestCustomWorkflowActivity
{

        public class SampleCustomActivity : CodeActivity 
        {
            protected override void Execute(CodeActivityContext executionContext)
            {
                //Create the tracing service
                ITracingService tracingService = executionContext.GetExtension<ITracingService>();

                //Create the context
                IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>();
                IOrganizationServiceFactory serviceFactory = executionContext.GetExtension<IOrganizationServiceFactory>();
                IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

            }
        }
}

我在使用 CRM 2013(本地和在线)时遇到了完全相同的问题。我从来没有设法真正解决这个问题,但通过使用 2015 年 SDK 中的注册工具轻松解决了这个问题。由于未知原因,一个效果更好。