Развертывание плагина для MS Dynamics CRM - отсутствует сборка - PullRequest
1 голос
/ 01 февраля 2011

Я выполнил шаги по этой ссылке и создал плагин: http://msdn.microsoft.com/en-us/library/bb955365.aspx

Я зарегистрировал его в сообщении «Извлечь» для одной из моих сущностей, но когда он срабатывает, я получаю эту ошибку:

Сбой подключаемого модуля веб-службы в OrganizationId: a2dcffbc-e056-4971-adfb-662979139800;SdkMessageProcessingStepId: 5b6921b8-192e-e011-846c-001d0928c4ac;EntityName: new_csvproiect;Стадия: 50;MessageName: Получить;AssemblyName: MSDynCRMPlugin.Plugin, MSDynCRMPlugin, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = a6a43dc7a3dcc61d;ClassName: MSDynCRMPlugin.Plugin;

Исключение: необработанное Исключение: System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'System.Web.Services, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a'или одна из его зависимостей.Система не может найти указанный файл.в MSDynCRMPlugin.Plugin.Execute (контекст IPluginExecutionContext) в Microsoft.Crm.Extensibility.PluginStep.Execute (контекст PipelineExecutionContext)

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 10 марта 2011

Убедитесь, что ваш проект плагина настроен на целевую среду .NET 4, а НЕ на среду профиля клиента .NET 4. В Visual Studio 2010 для новых проектов по умолчанию используется профиль клиента .NET 4.

Я думаю, что ссылки на System.Web.Services будут компилироваться в .NET 4 Client Profile, но фактически не будут выполняться при их запуске.

0 голосов
/ 22 февраля 2012

Используйте этот код:

AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
        {
            String resourceName = "AssemblyLoadingAndReflection." + new AssemblyName(args.Name).Name + ".dll";

            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
            {
                Byte[] assemblyData = new Byte[stream.Length];

                stream.Read(assemblyData, 0, assemblyData.Length);

                return Assembly.Load(assemblyData);
            }
        };
0 голосов
/ 02 февраля 2011

Вам нужно будет объединить внешние сборки в ваш плагин dll. Вот инструкции, которым вы должны следовать: Использование ILMerge с сборками плагинов CRM

...