Plugins 如何解决MSCRM插件注册失败时的问题

Plugins 如何解决MSCRM插件注册失败时的问题,plugins,dynamics-crm,dynamics-crm-4,Plugins,Dynamics Crm,Dynamics Crm 4,在Microsoft CRM中注册插件时,各种各样的事情都可能出错。最常见的错误是“发生了错误” 当您查找更多详细信息时,您只会看到:“服务器无法处理请求”,在“详细信息”下,您会看到“发生意外错误” 不是很有帮助。然而,如果你真的挖掘,有一些很好的答案。任何人都会遇到这种情况,您如何解决它?最常见的问题是元参数名称必须匹配 例如: public static DependencyProperty householdProperty = DependencyProperty.Register("

在Microsoft CRM中注册插件时,各种各样的事情都可能出错。最常见的错误是“发生了错误”

当您查找更多详细信息时,您只会看到:“服务器无法处理请求”,在“详细信息”下,您会看到“发生意外错误”


不是很有帮助。然而,如果你真的挖掘,有一些很好的答案。任何人都会遇到这种情况,您如何解决它?

最常见的问题是元参数名称必须匹配

例如:

public static DependencyProperty householdProperty = DependencyProperty.Register("household", typeof(Microsoft.Crm.Sdk.Lookup), typeof(AssignHouseholds));

  [CrmInput("AccountId")]
  [CrmReferenceTarget("account")]
  public Microsoft.Crm.Sdk.Lookup household
  {
   get
   {
    return (Microsoft.Crm.Sdk.Lookup)base.GetValue(accountidProperty);
   }
   set
   {
    base.SetValue(accountidProperty, value);
   }
  }
注意DependencyProperty(housedProperty)后面的名称必须与DependencyProperty.Register(在本例中为“Househouse”)后面的字符串完全匹配,并附加“Property”一词

此外,该值必须与public variabletype(在本例中为“househouse”)的值匹配。如果其中任何一个不匹配,则将出错


这是设计上的,也是MSCRM将这些值联系在一起的方式。

一个常见原因是,如果您在64位机器上,您的CRM SDK引用必须使用64位版本

这些将位于 C:\sdk\bin\64bit\microsoft.crm.sdk.dll 和 C:\sdk\bin\64bit\microsoft.crm.sdktypeproxy.dll 如果已将sdk安装到C:\sdk

此外,构建设置应设置为“项目属性->构建”下的“任何CPU”


在构建之前,您可能还需要将这两个DLL移动到“调试”或“发布”文件夹中。

我将这两个DLL放在这里主要是供我自己参考(internet上的信息现在已遍布各地)。