Dynamics crm 2011 无法加载文件或程序集';Microsoft.Xrm.Client

Dynamics crm 2011 无法加载文件或程序集';Microsoft.Xrm.Client,dynamics-crm-2011,Dynamics Crm 2011,我已经在CRM中创建了一个插件。它已成功注册。在我的插件中,我创建了一个具有许多功能的web服务。 成功调用插件步骤后,我收到错误消息- System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.Xrm.Client,版本=5.0.9689.2166,区域性=中性,PublicKeyToken=31bf3856ad364e35”或其依赖项之一”。系统找不到指定的文件。 为了解决这个问题,我从crmsvcutil.exe创建了新的XRM.cs文件,但

我已经在
CRM中创建了一个插件。
它已成功注册。在我的插件中,我创建了一个具有许多功能的web服务。 成功调用插件步骤后,我收到错误消息-

System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.Xrm.Client,版本=5.0.9689.2166,区域性=中性,PublicKeyToken=31bf3856ad364e35”或其依赖项之一”。系统找不到指定的文件。 为了解决这个问题,我从crmsvcutil.exe创建了新的XRM.cs文件,但遇到了相同的问题。对此进行了更多搜索,但尚未找到解决方案

注意:我正在使用Microsoft托管的CRM版本

下面是我正在使用的参考文件

  • microsoft.crm.sdk.proxy
  • Microsoft.CSharp
  • microsoft.xrm.client
  • microsoft.xrm.portal
  • microsoft.xrm.sdk
  • 系统
  • 系统核心
  • 系统数据
  • 系统数据服务
  • System.Data.Services.Client
  • System.DirectoryServices.AccountManagement
  • System.Runtime.Serialization
  • System.ServiceModel
  • Xml
  • System.Xml.Linq
有没有办法在托管的CRM版本上运行我的插件

如果有任何帮助,将不胜感激:)

插件通常不需要Microsoft.XRM.Client。
需要从外部应用程序连接到CRM。
自2016年CRM以来,Microsoft.XRM.Client已从SDK中删除

插件不会自动解析项目中的依赖项,它们必须已经在服务器上。

如果插件需要,可以将Microsoft.XRM.Client放入GAC中

动态CRM 2015的更新
NuGet包包含Microsoft.Xrm.Client

Dynamics CRM 2016和Dynamics 365的更新
Microsoft.Xrm.Client不再是SDK的一部分。
NuGet包包含插件开发所需的一切

系统的各个部分。

NuGet是一个比添加Dynamics CRM DLL作为项目参考更好的解决方案;特别是对于源代码管理和团队开发。

我已经通过使用这个命令解决了这个问题

CrmSvcUtil.exe /out:"Xrm.cs" 
               /url:http://crm/Contoso/XRMServices/2011/Organization.svc 
               /namespace:Xrm 
               /servicecontextname:XrmServiceContext
               /servicecontextprefix:Xrm
删除代码自定义选项解决了我的问题

/codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization, Microsoft.Xrm.Client.CodeGeneration"

如果从GAC运行,Microsoft.Xrm.Client.dll实际上似乎不起作用。这是因为它有一些狡猾的类型解析方法,只有在本地加载程序集时才起作用。我在这里提出了一个问题,详细说明了这一点:

你看到了吗:它不起作用。我已经创建了新的XRM.cs文件。。在我的插件中,可以看到代码'var connection=CrmConnection.Parse(“ServiceUri=myconnectiondetails”);var服务=新组织服务(连接);var context1=新的CrmOrganizationServiceContext(连接);var xrm=新的XrmServiceContext(context1);`。xrm对象提出了这个问题。我想大卫的答案可能是关于钱的。还可以查看描述类似内容的内容。我们可以这样使用
ioorganizationservicefactory serviceFactory=(ioorganizationservicefactory)serviceProvider.GetService(typeof(ioorganizationservicefactory));IOOrganizationService=serviceFactory.CreateOrganizationService(context.UserId);var xrm=新的XrmServiceContext(服务)SDK库的版本号是多少>感谢您的回复,如何将Microsoft.XRM.Client.dll放置在GAC的在线CRM上?我已经创建了删除参数的XRM.cs文件,它可以工作,不需要XRM.Client。但我面临着OptionSetValue的问题。如何设置这些值。无法访问CRM Online中的GAC。如果您有权访问CRM服务器,则只能在GAC中放置程序集。有关选项集值,请询问其他问题;如果我回答了您的问题,请将其标记为答案。OP在原始问题中非常清楚,他们使用的是“Microsoft托管的CRM版本”——在这种情况下,将dll放入GAC的建议是毫无帮助的。