无法加载文件或程序集'Microsoft.Xrm.Client

时间:2013-08-14 05:32:58

标签: dynamics-crm-2011

我在CRM.创建了一个插件,已成功注册。在我的插件中,我创建了一个包含许多功能的Web服务。 成功调用插件步骤后,我收到错误 -

  

System.IO.FileNotFoundException:无法加载文件或程序集'Microsoft.Xrm.Client,Version = 5.0.9689.2166,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。该系统找不到指定的文件。   为了解决这个问题,我从crmsvcutil.exe创建了新的XRM.cs文件,但是遇到了同样的问题。搜索了更多相关信息,但尚未找到解决方案。

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

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

  • microsoft.crm.sdk.proxy
  • Microsoft.CSharp
  • microsoft.xrm.client
  • microsoft.xrm.portal
  • microsoft.xrm.sdk
  • 系统
  • System System.Core
  • System.Data
  • System.Data.Services
  • System.Data.Services.Client
  • System.DirectoryServices.AccountManagement
  • System.Runtime.Serialization
  • System.ServiceModel
  • System.Xml
  • System.Xml.Linq的

有没有办法在托管版CRM上运行我的插件???

感谢是否有任何帮助:)

3 个答案:

答案 0 :(得分:4)

我已使用此命令解决了此问题。

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"

答案 1 :(得分:0)

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

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

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

Dynamics CRM 2015更新
NuGet包Microsoft.CrmSdk.Extensions包含Microsoft.Xrm.Client。

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

Dynamics CRM SDK are in NuGet的各个部分 与添加Dynamics CRM dll作为项目引用相比,NuGet是一个更好的解决方案;特别是对于源代码控制和团队开发。

答案 2 :(得分:0)

如果从GAC运行,Microsoft.Xrm.Client.dll实际上似乎无法正常工作。这是因为它有一些狡猾的类型解析方法,只有在本地加载程序集时才有效。我在这里提出了一个有关详细信息的问题:https://community.dynamics.com/crm/f/117/t/144464.aspx