Devexpress невозможно загрузить файл или сборку
немного странная ситуация: после успешного обновления проекта VisualStudio с DevExpress12.2 до 15.2 на этапе разработки конструктор(дизайнер) формы "падает" с необработанным исключением; Сведения:
т.е. почему-то продолжает требовать DevExpress.Data.v12.1, НО всё компиллируется и запускается без ошибок, и такая проблема только в VS2015, а в VS2010 всё нормально. Причём, DE перед установкой вроде требует удалять старую версию. Гуглил Яндексом, не нашёл упоминаний о таком :( помогите побороть эту ерунду.
UPD: проверил ещё в VS2017community тоже всё компиллиться и конструктор(дизайнер) формы работает штатно.
Студия скорее всего не при чем. Создайте новый проект, добавьте туда 15 версию, добавьте код для открытия формы, запустите его. Если запустится норм, то ищите проблему в вашем солюшене
Если конструктор формы выдает исключения в дизайн режиме, значит вы не до конца удалили предыдущий devexpress. Я бы заново все девекспессы удалил, писал бы им в поддержку, отключил все связанные с ним плагины, в окне Tools убрал бы все, что связано с dx, и если все это не поможет, то переставил бы студию, но это как последний вариант.
Не могу сказать за WPF, а в WinForms такое поведение обычно означает что где-то в папке bin завалялась какая-нибудь ненужная или не перекомпилировавшася сборка одного из ваших проектов, которая почему-то загрузилась в design surface и тянет за собой старые зависимости.
Отсутствует файл Microsoft.directx.direct3D — Решение
Для Windows требуется свежая версия компонента DirectX, который обновляется с сайта Microsoft и добавляется вместе с основными обновлениями. Если на экране вы видите уведомление об отсутствии файла Microsoft.directx.direct3d, понадобится установить новый компонент по ссылке DirectX. На компьютер загружается веб-установщик, который сканирует систему ПК на недостающий файлы, загружает их и устанавливает.
Видеоинструкция
В этом видео вы найдёте решение ошибки «Не удалось загрузить файл или сборку» при работе в приложении Visual Studio.
Возможные соответствующие разделы Web.config:
Файл лицензий DevExpress:
Сведения о файле библиотеки DevExpress:
Что я пробовал:
. Всегда одна и та же ошибка.
Дополнительная информация
- Другие разработчики сталкиваются с той же самой ошибкой в тех же условиях, что и я, только мой единственный разработчик, который работал над этим проектом, может нормально его построить.
- Я только что заметил, что в новой копии рабочего проекта в моем окне ссылок отображаются две одинаковые ссылки на библиотеку DevExpress.Data (одну в GAC и одну в BIN), но когда я пытаюсь повторно добавить ссылку на мой проект, тот, что в BIN, исчезает из моего окна ссылок:
Windows заблокировала файл DLL?
Я так не думаю (это на самом деле использовалось для компиляции для меня около года назад - прошло некоторое время с тех пор, как я пытался его собрать.) Но как я могу проверить в любом случае?
Что вы имеете в виду под развертыванием в моем локальном GAC? (Я знаю, что некоторые из моих ссылок иногда живут в GAC, но я действительно не знаю, что это значит.)
попробовать удалить папку obj?
@ ranton187 Где находится папка obj?
рядом с папкой bin..
@ ranton187 Удаление папки obj из вторичного проекта (это консольное приложение в том же решении, от которого зависит веб-проект, папки obj для основного веб-проекта нет) позволило мне успешно восстановить в первый раз, но затем он не запускался, не перестраивался снова и продолжал выдавать мне новую ошибку о той же сборке, в которой говорилось: «Не удалось загрузить файл или сборку DevExpress.Data.v17.2, версия = 17.2.5.0, культура = нейтральная, PublicToken=*****' или одна из его зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку".
Возможные соответствующие разделы Web.config:
Файл лицензий DevExpress:
Сведения о файле библиотеки DevExpress:
Что я пробовал:
. Всегда одна и та же ошибка.
Дополнительная информация
- Другие разработчики сталкиваются с той же самой ошибкой в тех же условиях, что и я, только мой единственный разработчик, который работал над этим проектом, может нормально его построить.
- Я только что заметил, что в новой копии рабочего проекта в моем окне ссылок отображаются две одинаковые ссылки на библиотеку DevExpress.Data (одну в GAC и одну в BIN), но когда я пытаюсь повторно добавить ссылку на мой проект, тот, что в BIN, исчезает из моего окна ссылок:
Windows заблокировала файл DLL?
Я так не думаю (это на самом деле использовалось для компиляции для меня около года назад - прошло некоторое время с тех пор, как я пытался его собрать.) Но как я могу проверить в любом случае?
Что вы имеете в виду под развертыванием в моем локальном GAC? (Я знаю, что некоторые из моих ссылок иногда живут в GAC, но я действительно не знаю, что это значит.)
попробовать удалить папку obj?
@ ranton187 Где находится папка obj?
рядом с папкой bin..
@ ranton187 Удаление папки obj из вторичного проекта (это консольное приложение в том же решении, от которого зависит веб-проект, папки obj для основного веб-проекта нет) позволило мне успешно восстановить в первый раз, но затем он не запускался, не перестраивался снова и продолжал выдавать мне новую ошибку о той же сборке, в которой говорилось: «Не удалось загрузить файл или сборку DevExpress.Data.v17.2, версия = 17.2.5.0, культура = нейтральная, PublicToken=*****' или одна из его зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку".
Недостаёт файла system.badimageformatexception
1 ответ 1
всем спс, натолкнули на правильное решение, к счастью не потребовались радикальные меры.
Суть в том, что при обновлении проекта DevExpress естественно не удаляет старые версии своих *.DLL скопированные локально в \bin\ release|debug -- стоило только их все вручную убрать проблема исчезла.
Предположительно, причина такая:
изначально у некоторых *.DLL было снято свойство "копировать локально", но при этом они там были скопированы -- и при обновлении DevExpress проекта с v12.2 до v15.2 хоть ссылки были переставлены на новые *.DLL, но приоритет видимо остался за скопированными локально(старыми v12.2) рядом с исполняемым файлом приложения, которые требовали для работы отсутствующий DevExpress.Data.v12.1 .
Прошу помощи знающих людей.
Есть программа специализированная Mantis Lvision, к ней можно подключать различные dll для вывода отчетов в самой программе. Ест два вида отчетов, вывод отчета с получением ID из самой программы, клик мыши по строке, ПКМ и выбор из контекстного меню. А есть вывод отчетов из меню ОТЧЕТЫ. Так вот написал dll для второго случая, сделал ее наследованной от dll программы, создал в ней конструктор и деструктор и инициализацию. Подключил через меню и получил ошибку :
"Невозможно загрузить файл или сборку "CommonReport.dll" или один из зависимых от них компонентов. Не удается найти указанный файл.
в System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
в System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(A ssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
в System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection)
в System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
в System.Reflection.Assembly.Load(String assemblyString)
в Mantis.LVision.Win32.ControlRoutines._ShowFormFromAssembly(L VBasicForm& frm, LVBasicForm frmParent, String assemblyName, String typeName, Int32 id, LVTreeNode pTreeNode, Boolean AllowMultiple, Object constructParam, enmExecuteAction executeAction, Boolean modal, Int32[] MultipleIDs, Boolean IsMDIChild)
в Mantis.LVision.Win32.ControlRoutines.ShowFormFromAssembly(LV BasicForm frmParent, String assemblyName, String typeName, Int32 id, LVTreeNode pTreeNode, Boolean AllowMultiple, Object constructParam, enmExecuteAction executeAction, Boolean modal, Int32[] MultipleIDs, Boolean IsMDIChild)
в cr.l(Object A_0, EventArgs A_1)"
Невозможно загрузить файл или сборку
В приложении ииспользую компонент DevExpress ChartControl. На моём компьютере всё работает. На.
Да, это она самая. Находится в папке с программой к которой подключается. В принципе там много dll которые подключены и работают. А вот я не могу подключить(((. Знаний не хватает видимо. Причем для первого варианта (вывод через контекстное меню) все получилось.
Jennz, нужно смотреть документацию к этой программе. Возможно dll нужно выкладывать в специальный каталог или как-то настраивать приложение. Как вариант можно включить протоколирование поиска сборок чтобы понять где именно приложение ищет CommonReport.dll и почему не находит. Для этого создаем папку C:\FusionLog, даем права на запись Everyone. Далее запускаем regedit, находим ветку HKLM\Software\Microsoft\Fusion и создаем ключи
ForceLog (тип DWORD) = 1
LogPath (строка) - C:\FusionLog
Далее запускаешь Mantis Lvision, вопроизводишь ошибку с загрузкой сборки и смотришь отчеты по сборке CommonReport в папке C:\FusionLog
Не забудь потом отключить протоколирование удалив ключи или поставив ForceLog = 0.
OwenGlendower, Спасибо за совет. Сейчас попробую выяснить что к чему. Надеюсь поможет))).
Да нет, там много еще написано, но в основном повторы, попытки повторной загрузки и т.д.
Операция выполнена со сбоем.
Результат привязки: hr = 0x80070002. Не удается найти указанный файл.
Операция выполнена со сбоем.
Результат привязки: hr = 0x80070002. Не удается найти указанный файл.
В приложения для Windows в разных ситуациях можно встретить ошибку «Не удалось загрузить файл или сборку». Найдём решение для этих случаев и рассмотрим дополнительные проблемы, возникающие при ошибки данного типа.
Как добавлять файлы с расширением .dll
На сайте также есть специальная небольшая утилита, которая позволит в один клик установить необходимое ПО в нужную папку, чтобы не делать этого вручную.
- Она называется Dll Helper. Скачайте её и установите на ПК.
- После чего загрузите недостающий файл и установите с помощью помощника.
- Это также можно сделать, открыв папку с программой и найдя файлы с таким же расширением. Перенос файла в список этих файлов также поможет устранить ошибку «Не удалось загрузить файл или сборку».
Не загружается файл cefsharp.core.dll
Если программа, в которой возникла проблема при запуске сейчас запущена, закройте её. И снова откройте после копирования нужной библиотеки dll.
Не удалось найти mom.implementation — что делать?
Программы разного назначения могут выдавать ошибку «Не удалось найти файл или сборку либо одну из их зависимостей». Нередко она возникает также по вине драйверов для оборудования компьютера. MOM.implementation свидетельствует о том, что на ПК работает видеокарта от AMD. И в данный момент в его работа появилась критическая ошибка. Устраняется она полной переустановкой драйвера с удалением предыдущих файлов.
- Необходимо открыть диспетчер устройств. Его можно открыть так: нажмите WIN+R и введите devmgmt.msc;
- Найдите раздел с видеоадаптерами;
- Выберите действующую видеокарту в списке и нажмите по ней ПКМ;
- Курсором укажите пункт «Удалить»;
- Обновите драйвера для видеоадаптера, установите драйвер с диска/флешки или найдите для своей модели на сайте производителя.
После переустановки необходимого ПО компьютер снова заработает. Если вы ни разу не переустанавливали драйвера устройств, обратитесь к более опытным пользователям.
Читайте также: