5

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

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

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

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

  • microsoft.crm.sdk.proxy
  • 微软.CSharp
  • microsoft.xrm.client
  • microsoft.xrm.portal
  • 微软.xrm.sdk
  • 系统
  • 系统 System.Core
  • 系统数据
  • 系统数据服务
  • System.Data.Services.Client
  • System.DirectoryServices.AccountManagement
  • System.Runtime.Serialization
  • 系统.服务模型
  • 系统文件
  • System.Xml.Linq

有什么方法可以在托管版本的 CRM 上运行我的插件???

感谢您的帮助:)

4

3 回答 3

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"
于 2013-08-15T11:51:45.327 回答
1

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

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

如果插件需要,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的各个部分都在 NuGet 中。
NuGet 是比添加 Dynamics CRM dll 作为项目引用更好的解决方案;特别是对于源代码控制和团队开发。

于 2013-08-14T11:52:37.597 回答
1

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

于 2014-11-11T10:23:40.977 回答