Ответ 1
Дважды проверьте настройки своего проекта, чтобы узнать, какую целевую структуру вы используете. Если это Профиль клиента .NET Framework 4, попробуйте изменить его на .NET Framework 4.
Я загрузил SDK CRM Dynamics и сохранил его в локальном каталоге. В моем коде я использую EntityCollection
(среди других классов, связанных с пространством имен Xrm), что означает, что мне нужно добавить using Microsoft.Xrm.Sdk;
.
Проблема заключается в том, что во время компиляции я получаю ошибки, говорящие, что:
Тип или имя пространства имен "Xrm" не существует в пространстве имен "Microsoft" (вам не хватает ссылки на сборку?)
Итак, я дважды проверяю, что ссылка сделана, и, очень точно, я вижу, что microsoft.xrm.sdk
действительно в моем списке. Чтобы быть уверенным, я удалил его и добавил его снова, указав на DLL с тем же именем. Однако безуспешно... Дело в том, что мой коллега использует тот же код, и он компилируется на его машине (с той лишь разницей, что он на Win 7, а я на Win 8).
Как мы можем убить эту проблему?
Дважды проверьте настройки своего проекта, чтобы узнать, какую целевую структуру вы используете. Если это Профиль клиента .NET Framework 4, попробуйте изменить его на .NET Framework 4.
Я получил это при замене dll с crm 2013 новыми версиями 2015 года.
Ни один из вышеперечисленных решений не работал у меня. Но то, что в конечном итоге привело меня на правильный путь, было этим предупреждением (оно было указано как предупреждение ниже ошибок пространства имен):
Основная ссылка "Microsoft.Xrm.Client, Version = 5.0.9689.2166, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL" не удалось решить, потому что он был построен в рамках ".NETFramework, Version = v4.5.2". Это выше версии, чем в настоящее время ".NETFramework, Version = v4.5.1"
И когда я проверил, у меня только был .Net 4.5.1, поэтому после установки .Net 4.5.2 Разработка пакета и переключения целевой структуры моих проектов на это все снова работало.
Регулярное обновление 4.5.2 недостаточно для получения этой версии .net в VS, вам нужен пакет разработки
У меня была уже настроенная инфраструктура , установленная на .NET Framework 4, поэтому решение о переключении между 4-м клиентом и обычным 4 не применялось. Трюк, который я сделал, - это изменение .NET Framework в 3.5, а затем обратно до 4.0. Надеюсь, это поможет некоторым людям.
спасибо @Jason Lattimer. Ваш ответ дал мне понять, как решить мою проблему.
Удачи разработчикам CRM!
Это может не соответствовать этой конкретной проблеме, но я добавлю это как что-то, чтобы проверять других в случае, если Google направит их сюда, как это было для меня.
В моем случае у меня появилось много ошибок типа "ошибка CS0234: Тип или имя пространства имен" Клиент "не существует в пространстве имен" Microsoft.Xrm ".
Добавление "Microsoft.CrmSdk.Extensions" пакета NuGet устраняет проблемы с компиляцией.
После перехода на .NET Framework 4 и изменения .NET Framework на 3.5, а затем обратно до 4.0, мой проект все еще не работал.
Это не сработало, когда я выбрал опцию, заданную окном "Добавить ссылку".
Что сработало для меня, так это нажать кнопку обзора в окне "Добавить ссылку" и найти файл Microsoft.Xrm.Sdk.dll
У меня была .NET 4.0 как моя целевая структура, и у меня была эта ошибка компилятора. Я попытался изменить его на 3.5, а затем вернуться к 4.0, и это не исправить.
Что мне удалось решить, это удалить папки bin, obj и tools в моем каталоге проектов. Я не понимаю деталей, почему это сработало, но это сработало для меня.
У меня была эта ошибка, и в моем случае, после попытки всех вышеупомянутых решений и других пользователей в Интернете без успеха, я, наконец, пришел к решению.
Проблема была в версии SDK CRM, которую я использовал: 2015 (не хочу знать, почему!).
Загрузили версию SDK 2013 CRM, изменили ссылки на сборку этой версии, и проблема исчезла.
Причина этого заключается в том, что SDK CRM 2015 был построен на .Net 4.5.2 Framework и Visual Studio не поддерживает 4.5.2.
Просто загрузите .Net Framework 4.5.2 Перейдите к свойствам проекта и измените структуру.
У меня была такая же проблема с моим плагином CRM 2011. В моем случае ни одно из вышеперечисленных решений не работало.
В моем коде я использую ранний класс. При создании этого файла класса я использовал следующую строку вместе с другими настройками, которые вызывали ошибку.
/codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization, Microsoft.Xrm.Client.CodeGeneration"
Как только я добавил этот новый файл класса без codeCustomization, он удалил все ошибки.
Как упоминалось ранее,
Основанием для этого является CRM 2015 SDK, построенный на .Net 4.5.2 Framework и Visual Studio не поддерживает 4.5.2.
Просто загрузите .Net Framework 4.5.2 Перейти к свойствам проекта и изменениям рамки.
Альтернативным способом может быть замена файла Microsoft.Xrm.Sdk.dll файлом из более старого SDK CRM. Я использую VS2010, и SDK файл CRM 2011 решил все ошибки компилятора.
P.S. Переключение проекта на .NET 3.5 и обратно в 4.0 не помогло
Обновление пакета NuGet помогло мне решить проблему