Создание одной DLL плагина CRM для хранения в базе данных CRM - PullRequest
3 голосов
/ 20 октября 2010

Поскольку предлагаемый способ хранения плагинов в MS CRM - через базу данных CRM, я подумал, что пора что-то предпринять в отношении метода, который я сейчас использую, - хранения DLL на диске.

Проблема, однако, в том, что я не знаю, как встроить все остальные биты, которые нужны DLL: файлы ресурсов локализации (которые хранятся в другой папке) и некоторые библиотеки DLL, на которые есть ссылки, из последнего SDK (который должен былбыть помещены вручную в папку bin \ assembly).На данный момент я даже не совсем уверен, что это возможно.

До сих пор я пытался решить проблему локализации, изменив действие по сборке файлов ресурсов на «Содержимое» или «Ресурс» ипротестировал это решение (сохраняя расположение на диске, но без добавленной папки локализации).Это не сработало: когда я нарочно сгенерировал ошибку проверки в одном из плагинов, я получил сообщение о языке по умолчанию (английский), несмотря на то, что в CRM был выбран другой язык.

Я столкнулся с подобнымпроблема при попытке добавить некоторые из указанных файлов DLL (а именно, новые библиотеки SDK: xrm.portal, xrm.portal.files и xrm.client).Когда я попытался сохранить плагин в базе данных (на мгновение пропустив проблему локализации), я получил ошибку CRM, в которой говорится, что он не может найти сборку XRM.Client или одну из его зависимостей.Я знаю, что мог бы использовать ILMerge, чтобы собрать все воедино, но у меня есть внутреннее чувство, говорящее мне, что это не очень хорошая идея.

Любые намеки или предложения по этому вопросу были бы хорошими.

Ответы [ 3 ]

6 голосов
/ 20 октября 2010

Мы всегда ILMerge наши плагины и не было никаких проблем с этим.Мы не объединяем DLL-файлы SDK, потому что они уже будут GACed на целевом сервере.

Однако мы не выполняем локализацию внутри наших библиотек подключаемых модулей, поэтому я думаю, что вам, возможно, придется сделатьесли ваш текущий менеджер ресурсов основан на файлах, то он должен быть основан на сборке и просто загружать необходимые ресурсы из этого.

0 голосов
/ 23 февраля 2016

Просто поместите библиотеки DLL в папку CRMWeb \ Bin

0 голосов
/ 20 октября 2010

У меня есть набор помощников, которые связаны во внешней сборке, которую я использую для большинства моих реализаций.Я разверну это в папке bin и оставлю на этом.Сам я никогда не пробовал ILMerge, но это кажется интересной концепцией.

...