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

Dynamics CRM 2011无法将插件注册到磁盘,crm,dynamics-crm-2011,Crm,Dynamics Crm 2011,我正在试验向CRM2011服务器添加插件。按照sdk插件示例的步骤,一切都按预期进行。然而,当我尝试将插件注册到磁盘(默认为数据库)时,我得到了 服务器似乎找不到microsoft.xrm.sdk文件。但为什么在发布到数据库时相同的设置可以正常工作呢 我已为文件夹C:\program files\MicrosoftDynamics CRM\Server\bin的用户“网络服务”添加了“写入”权限,但收到了相同的错误消息 服务器操作系统是在vmware player虚拟机中运行的Windows 2

我正在试验向CRM2011服务器添加插件。按照sdk插件示例的步骤,一切都按预期进行。然而,当我尝试将插件注册到磁盘(默认为数据库)时,我得到了

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

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


服务器操作系统是在vmware player虚拟机中运行的Windows 2008 R2

如果您尝试添加对bin文件夹具有完全访问权限的组“Everyone”,是否仍会出现错误?

我从microsoft论坛获得了答案。事实证明,我需要手动将dll复制到CRMINSTLLDIR/server/bin/assembly下的CRM服务器上,然后才能从我的客户机进行注册


现在我知道了这个概念,但仍然认为它违反直觉。微软这样设计插件注册过程有什么原因吗?保安

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


我选择了在开发时始终使用磁盘,这样可以快速更新程序集,并且只在生产环境中使用数据库选项。

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

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

  • 在Visual Studio中,在“项目/属性”菜单选项下的“生成后事件”命令行框中,添加一个命令以复制.dll(如果正在调试,则为.pdb)。copy命令应包括在上一步中创建的共享名,或使用admin命令的路径$

  • 另外,请查看“编辑生成后”按钮下可用的宏。您将发现一些有用的位,如$(TargetFileName),用于抽象实际的文件和文件夹名

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


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

    现在我添加了具有完全控制权的所有人。仍然有同样的错误:(我在上问过这个问题,希望从微软内部人士那里得到一些反馈。我们也有同样的问题。我们最终做了和你一样的事情。我也不知道他们为什么这么做。我们只是在开发时坚持把它放在数据库中(每次上传dll都很痛苦)。
    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.