2

每当用户创建帐户时,我都会尝试在系统用户实体中填充一个字段。尝试检索系统用户实体以便填充其属性时,我不断收到错误消息。我的代码如下:

public void Execute(IServiceProvider serviceProvider)
        {
            ITracingService tracingservice = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
            IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

            IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService service = factory.CreateOrganizationService(context.InitiatingUserId);

            if (context.InputParameters.Contains("Target") &&
               context.InputParameters["Target"] is Entity)
            {
                try
                {
                    //Get entity that fired plugin
                    Entity entMain = (Entity)context.InputParameters["Target"];

                    //Make a String for the last activity entity
                    String strLastEntity = "";

                    //Make the entity for the user entity
                    Entity entUser = (Entity)service.Retrieve("systemuser", context.InitiatingUserId, new ColumnSet(new String[] { "new_lastactivityentity" }));

                    //Get the entity type that fired the plugin and set it to the right field for the user entity
                    if (entMain.LogicalName.Equals("account"))
                    {
                        strLastEntity = entMain.LogicalName;
                        entUser["new_lastactivityentity"] = strLastEntity;
                    }
                }
                catch (Exception ex)
                {
                    tracingservice.Trace("FollowupPlugin: {0}", ex.ToString());
                    throw;
                }
            }
        }

错误是:无法加载文件或程序集 'PluginRegistration,Version=2.1.0.1,Culture=neutral,PublicKeyToken=null' 或其依赖项之一。该系统找不到指定的文件。

有人可以解释如何获取系统用户以便我可以更新其属性吗?

4

1 回答 1

0

这是因为您有一个未安装在服务器上的程序集引用,特别是PluginRegistration.

您可以将该 dll 放在服务器上的 GAC 中,但这不适用于 CRM Online(或者我相信在沙盒注册中)。

是否PluginRegistration引用了插件注册工具中使用的 Microsoft 程序集?一般来说,您不需要在项目中引用该引用,因此您可以尝试删除该引用。

于 2013-06-07T08:03:49.627 回答