创建单个CRM插件DLL以存储在CRM数据库中

Sha*_*aan 3 c# plugins dynamics-crm dynamics-crm-4

由于建议的方式在MS CRM中存储插件是通过CRM数据库,我认为现在是时候对我正在使用的方法做一些事情,即将磁盘存储在磁盘上.

但问题是我不知道如何嵌入DLL所需的所有其他各种位:本地化资源文件(保存在另一个文件夹中)和一些引用的DLL来自最新的SDK(必须是手动放在bin\assembly文件夹中).在这一点上,我甚至不完全确定这是可能的.

到目前为止,我已经尝试通过将资源文件上的构建操作更改为"内容"或"资源"来解决本地化问题,并测试了此解决方案(仍保留磁盘上的位置,但没有添加本地化文件夹).这不起作用:当我故意在其中一个插件中生成验证错误时,尽管在CRM中选择了不同的语言,但我得到了默认语言消息(英语).

在尝试添加一些引用的DLL文件(即新的SDK DLL:xrm.portal,xrm.portal.files和xrm.client)时,我遇到了类似的问题.当我试图将插件存储在数据库中时(跳过本地化问题),我得到一个CRM错误,说它无法找到XRM.Client程序集或其中一个依赖项.我知道我可以使用ILMerge将整个事情放在一起,但我有一种直觉,告诉我这不是一个好主意.

关于这个问题的任何提示或建议都会很棒.

Mat*_*att 6

我们总是ILMerge我们的插件,并没有任何问题.我们不会在SDK dll中合并,因为这些已经在目标服务器上进行了GAC.

但是,我们并不真正在插件dll中进行本地化,因此我认为您可能需要做的是,如果您当前的资源管理器是基于文件的,则使其基于程序集并从中加载必要的资源.