Dynamics CRM 2011无法将插件注册到磁盘

时间:2011-06-06 16:59:25

标签: crm dynamics-crm-2011

我正在尝试将插件添加到CRM2011服务器。按照带有sdk的Plug-in Sample的步骤,一切都按预期工作。但是,当我尝试将插件注册到磁盘(默认为数据库)时,我得到了

Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Unable to load plug-in assembly.

似乎服务器找不到microsoft.xrm.sdk文件。但是为什么在发布到数据库时相同的设置工作正常?

我为文件夹C:\ program files \ MicrosoftDynamics CRM \ Server \ bin的用户“网络服务”添加了“写入”权限,但收到了相同的错误消息。

服务器操作系统是Windows 2008 R2在vmware播放器虚拟机中运行。

4 个答案:

答案 0 :(得分:5)

我从微软论坛得到了答案。原来我需要手动将dll复制到CRMINSTLLDIR / Server / bin / assembly下的CRM服务器,然后我可以从我的客户端机器进行注册。

既然我知道这个概念,但仍然认为它是反直觉的。微软是否有任何理由以这种方式设计其插件注册流程?安全?

答案 1 :(得分:0)

如果您尝试添加具有对bin文件夹的完全访问权限的“Everyone”组,您仍然会收到错误吗?

答案 2 :(得分:0)

一旦做出选择,似乎就会在CRM数据库中注册.dll,因此在此之后无法开始使用汇编文件夹(磁盘)。

我总是在开发时总是使用磁盘,因此可以快速更新程序集,只在生产环境中使用数据库选项。

答案 3 :(得分:0)

如果您确实要部署到磁盘,请尝试以下方法:

  1. 在[...] / Server / bin / assembly文件夹中创建共享,只为开发人员提供读/写功能。或者,如果开发人员具有服务器的管理员权限,则可以跳过此步骤并仅使用管理员共享。例如: \ servername \ c $ \ Program Files \ Microsoft Dynamics CRM \ Server \ bin \ assembly

  2. 在Visual Studio中,在“项目/属性”菜单选项下的构建后事件命令行框中,添加一个命令来复制.dll(和.pdb,如果调试) 。复制命令应包括在上一步中创建的共享名称,或使用admin $

  3. 的路径

    另外,请查看Edit Post-build按钮下的可用宏。您将找到一些有用的位,如$(TargetFileName)来抽象实际的文件和文件夹名称。

    现在每次构建时,您的文件都会自动复制到服务器上。

    即使我将我的插件注册到数据库,我也一直使用这种方法。如果要进行任何远程调试,则需要服务器上的assembly文件夹中的.dll和.pdb。