由於在MS CRM中存儲插件的建議方式是通過CRM數據庫,因此我認爲是時候對我目前使用的方法做些什麼了,將DLL存儲在磁盤上。創建一個單獨的CRM插件DLL以存儲在CRM數據庫中
但問題是我不知道如何嵌入DLL所需的所有其他各種位:本地化資源文件(保存在另一個文件夾中)和一些來自最新SDK的引用DLL(必須手動放置在bin \ assembly文件夾中)。在這一點上,我甚至不完全確定這是可能的。
到目前爲止,我試圖通過將資源文件上的構建操作更改爲「內容」或「資源」來解決本地化問題,並測試了此解決方案(仍保留位置在磁盤上,但沒有添加本地化夾)。這不起作用:當我在其中一個插件中故意生成驗證錯誤時,儘管在CRM中選擇了不同的語言,但仍然得到了默認語言消息(英文)。
當我嘗試添加一些引用的DLL文件(即新的SDK DLL:xrm.portal,xrm.portal.files和xrm.client)時,我遇到了類似的問題。當我試圖在數據庫中存儲插件(跳過一段時間的本地化問題)時,我得到了一個CRM錯誤,說它找不到XRM.Client程序集或它的一個依賴項。我知道我可以用ILMerge把整個事情放在一起,但我有一種直覺告訴我這不是一個好主意。
關於這個問題的任何提示或建議都會很棒。
作爲一項後續工作,NuGet ILMerge軟件包使其更加簡單。不再編輯後期構建任務,它只是合併構建結果中的所有內容。只要確保將CRM SDK DLL標記爲不被複制到輸出文件夾即可。 – Matt 2016-02-24 16:01:49