近期做CRM的Plugin开发,发现Plugin中的功能必须全部放在一个DLL里,感觉不爽,如果我要用的功能在别人提供的DLL里,或有些功能需要在多个地方使用岂不是很难过?
用了VS2012的Dynamics CRM 2011开发扩展,发现一个Demo里确实将功能置于两个DLL,于是研究了一下,建了一个例子,如下图
鼠标右键点击部署Solution,发现Plugin可以成功部署,有戏!
在CRM中创建对象,触发Plugin,这时却弹出错误,大意为:Plugin无法执行。也就是其所依赖DLL不存在。
问过同事CRM中Plugin注册的形式,Plugin被注册为Isolation Mode 为 None,注册进Database(这些与部署无关,是为调试用)
而在CRM的程序目录存在一个Assembly目录,一些需要用到的Assembly可以放到这里。
将通用功能的DLL放到这个目录之后,Plugin就可以找到并调用到相应的功能了。