每当用户创建帐户时,我都会尝试填充系统用户实体中的字段。我在尝试检索系统用户实体时不断收到错误,以便我可以填充其属性。我的代码如下:
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'或其依赖项之一。系统找不到指定的文件。
有人可以解释如何获取系统用户以便我可以更新其属性吗?
答案 0 :(得分:0)
这是因为您有一个未安装在服务器上的程序集引用,特别是PluginRegistration
。
您可以将该dll放在服务器上的GAC中,但这不适用于CRM Online(或者我认为是Sandbox注册)。
PluginRegistration
是否是对插件注册工具中使用的Microsoft程序集的引用?一般来说,您不需要在项目中引用它,因此您可以尝试删除引用。