visual-studio-2010 - 注册工具中未找到 CRM 4 插件

标签 visual-studio-2010 plugins dynamics-crm-4

我正在 Visual Studio 2010 中现有的 Microsoft Dynamics CRM 4 解决方案的新项目中创建一个新插件。该解决方案已包含已使用插件注册工具成功部署的其他项目/DLL。

但是,当我构建项目并将 .dll 文件加载到插件注册工具中时,加载的程序集中没有拾取任何插件!

我的插件类包含 IPlugin 接口(interface)并已签名。我不知道我还需要做什么?有人有什么建议吗?

更新:我的类(class) -

正如您所看到的,我在第一次测试部署中保持了简单。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using Microsoft.Crm.Sdk;
using Microsoft.Crm.Sdk.Query;
using Microsoft.Crm.SdkTypeProxy;
using System.Web;
using System.Xml;
using System.Runtime.InteropServices;

namespace RI.CRM.Plugins2
{
    class SupportAutoNumber : IPlugin
    {
        public void Execute(IPluginExecutionContext context)
        {

            if (context == null) throw new InvalidPluginExecutionException("Context is null.", new ArgumentNullException("context"));

            // Verify that there is an entity in the target     
            if (context.InputParameters.Properties.Contains(ParameterName.Target)
                && context.InputParameters.Properties[ParameterName.Target] is DynamicEntity)
            {
                ICrmService crmService = context.CreateCrmService(true);
                DynamicEntity theAutonumber = RetrieveDynamicEntitiesByProperty(crmService, "ri_autonumber", "ri_name", "Support Ticket Numberer");

                throw new InvalidPluginExecutionException(string.Format("Retrieved Autonumber: {0}", theAutonumber.Name));

            }
        }

        public static DynamicEntity RetrieveDynamicEntitiesByProperty(ICrmService service, string Entity, string Column, string Value)
        {
            ConditionExpression con = new ConditionExpression();
            con.AttributeName = Column;
            con.Operator = ConditionOperator.Equal;
            con.Values = new string[] { Value };

            FilterExpression filter = new FilterExpression();
            filter.FilterOperator = LogicalOperator.And;
            filter.AddCondition(con);

            QueryExpression query = new QueryExpression();
            query.EntityName = Entity;
            query.ColumnSet = new AllColumns();
            query.Criteria = filter;

            RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest();
            retrieve.Query = query;
            retrieve.ReturnDynamicEntities = true;
            RetrieveMultipleResponse retrieved = (RetrieveMultipleResponse)service.Execute(retrieve);

            //I prefer Lists to BusinessEntityCollection objects
            IList<DynamicEntity> Entities = new List<DynamicEntity>();
            foreach (DynamicEntity de in retrieved.BusinessEntityCollection.BusinessEntities)
                Entities.Add(de);

            if (retrieved.BusinessEntityCollection.BusinessEntities.Count == 0)
                return null;
            DynamicEntity entity = (DynamicEntity)retrieved.BusinessEntityCollection.BusinessEntities[0];
            return entity;
        }

    }
}

最佳答案

您需要将您的类公开,否则在程序集外部无法看到它。

例如公共(public)类SupportAutoNumber:IPlugin

关于visual-studio-2010 - 注册工具中未找到 CRM 4 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16935627/

相关文章:

c# - 具有相同文本输入的 ASP.NET 文本框文本更改

无法在其他计算机上运行由Visual Studio 2010编译的opengl程序

javascript - Wordpress dFactory Cookie 通知插件

java - 无法解决对自制模块的依赖关系

javascript - 从js访问插件 Controller

c# - 构建名称字段为 A 或 B 的 QueryExpression

wpf - 有没有办法注释掉包含注释的 XAML?

c++ - 如何在 C++ 中将函数中的 STL 列表作为参数传递

c# - 使用自定义按钮从 CRM 中执行存储过程的最佳方法

dynamics-crm - 为 CRM 网格着色