Не удалось загрузить файл или сборку

Обновлено: 05.07.2024

Я получаю следующую ошибку .

Я пробовал следующее:

Это ошибка? Есть ли обходной путь? Любая помощь приветствуется.

У меня была та же проблема, и я не нашел предлагаемых решений. Мое решение этой проблемы: проверьте App.config и packages.config, чтобы узнать, совпадают ли версии.

Первоначально мой app.config содержал:

Но файл packages.config содержал:

Я изменил запись app.config, чтобы она соответствовала packages.config для новой версии:

После изменения проблема была решена.

Я вытащил «4.3.0» из NuGet, но по какой-то причине VS настаивает на том, чтобы я ссылался на «4.1.2.0», у меня сработала аналогичная работа, только с другим номером версии . У меня была такая же проблема, как у @DavidRogers в проекте MSTest. Объединение различий между app.config и packages.config решило проблему. да, большое спасибо ! Это было решение для моего MSTest, который не нашел тестов [MSTest][Discovery] Failed to discover tests from assembly Reason:Could not load file or assembly 'System.Reflection, Version=4.1.1.0 etc Решение сработало для меня. Проблема началась после установки HtmlAgilityPack NUGET. И не запускался из-за неправильной информации о версии в пакетах. +1

Приведенное ниже больше не нужно, оно было исправлено около VS 15.3:

Был известная ошибка VS2017 , особенно в NuGet 4.0.

NuGet 4.x приносит с собой «ссылку на пакет» - больше никаких пакетов.config, - но старый конвейер 4.x не был полностью обновлен на момент запуска VS2017. Приведенный выше фрагмент, кажется, «разбудит» систему сборки для правильного включения ссылок на пакеты из зависимостей.

Какое обновление Visual Studio 17? Можете указать версию? У меня все еще проблема в 15.5.5 VS2017. Похоже, есть и другие причины.

Я недавно столкнулся с этой проблемой, и я пробовал много вещей, упомянутых в этой и других ветках. Я добавил ссылку на "System.Runtime" пакет для диспетчера пакетов nuget, исправил повторные привязки app.config и убедился, что app.config и package.config для сборки используется та же версия. Однако проблема не исчезла.

Наконец-то снял <dependentAssembly> бирку для сборки и проблема исчезла. Итак, попробуйте удалить следующее в вашем app.config .

Основываясь на вашем ответе, я проверил свои пакеты nuget и обнаружил, что между моими проектами требуется «Google.protobuf» (консолидация), Было бы полезно лучше объяснить, почему это сработает. Проблема с этим методом заключается в том, что всякий раз, когда вы обновляете какой-либо пакет nuget или добавляете новый пакет nuget, он будет добавлен снова.

Я решил эту ошибку, сославшись на NetStandard.Library и следующий файл app.config в NUnit-Project.

редактировать

Редактировать 2

Автоматическое создание переадресации привязки

В новых версиях Visual Studio (я думаю, 2017 15.8) возможно, что Studio создаст файл app.config. Просто установите флажок Автоматически создавать перенаправления привязки в Project-Properties - Application .

Редактировать 3

Я исправил это, удалив app.config с помощью

app.config был автоматически добавлен (но не нужен) во время рефакторинга

Это сработало для меня! Обязательно попробуйте это, если все остальное у вас не работает

<dependentAssembly> <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/> </dependentAssembly>

Я исправил свою ошибку, установив NetStandard.Library в свой проект модульного тестирования.

Мы обнаружили, что AutoGenerateBindingRedirects может быть причиной этой проблемы.

Замечено: один и тот же проект нацелен net45 и netstandard1.5 был успешно построен на одной машине и не был построен на другой. На машинах были установлены разные версии фреймворка (4.6.1 - успешно и 4.7.1 - неудачно). После обновления фреймворка на первой машине до версии 4.7.1 сборка также не удалась.

Загляните в это прямо сейчас в проекте модульного теста после добавления MsTest V2 через Nuget. Переименование app.config (столь эффективное его удаление) помогло мне.

но один пакет также добавил ту же сборку в зависимости от другой версии:

удаление тега «добавить сборку» из моего файла web.config решило проблему.

В app.config или web.config добавьте

Похоже, проблема возникает из-за конфликта версий между packages.config и app.config. В app.config у вас есть перенаправления привязки сборки, автоматически генерируемые функцией AutoGenerateBindingRedirects. Если этот параметр включен каждый раз, когда вы загружаете пакет nuget, он будет, помимо создания новой записи в packages.config, добавлять эту информацию о перенаправлении привязки в app.config. Какова цель этого, объясняется здесь: Перенаправление привязки сборки: как и почему?

Там вы можете прочитать, что написал пользователь @Evk:

Зачем вообще нужны привязки перенаправления? Предположим, у вас есть приложение A, которое ссылается на библиотеку B, а также на библиотеку C версии 1.1.2.5. Библиотека B, в свою очередь, также ссылается на библиотеку C, но версии 1.1.1.0. Теперь у нас конфликт, потому что вы не можете загружать разные версии одной и той же сборки во время выполнения. Чтобы разрешить этот конфликт, вы можете использовать перенаправление привязки, обычно к новой версии.

Итак, БЫСТРОЕ ИСПРАВЛЕНИЕ: удалите все записи в app.config.

В моем случае, просто благодаря этому программа начала работать, но она, вероятно, будет работать только в том случае, если у вас нет конфликтов версий одной и той же сборки во время выполнения.

У меня есть еще одна из этих проблем "не удалось загрузить файл или сборку или одну из ее зависимостей".

дополнительная информация: не удалось загрузить файл или сборка 'Майкрософт.Практика.Единство, Версия=1.2.0.0, культуры=нейтральный, PublicKeyToken=31bf3856ad364e35 ' или одна из его зависимостей. В расположенном определение манифеста сборки не не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Я понятия не имею, что вызывает это или как я могу отладить его, чтобы найти причину.

Я сделал поиск в моих каталогах решений .файлы csproj, и каждый, где я есть единство я:

ссылка Include= " Microsoft.Практика.Единство, Версия=2.0.414.0, культура = нейтральная, Значения PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"

Не могу найти ссылку в любом месте, которая идет против 1.2.0.0 в любом из моих проектов.

любые идеи, как я стоит ли решать эту проблему?

Я также был бы признателен за советы о том, как отлаживать такие проблемы в целом.

Проверьте, ссылаетесь ли вы на сборку, которая, в свою очередь, ссылается на старую версию unity. Например, предположим, у вас есть сборка под названием ServiceLocator.dll который нуждается в старой версии Unity assembly, теперь, когда вы ссылаетесь на ServiceLocator вы должны предоставить ему старую версию Unity, и это создает проблему.

может быть выходной папкой, где все проекты строят свои сборки, имеет старую версию единство.

можно использовать FusLogVw чтобы узнать, кто загружает старые сборки, просто определите путь для журнала и запустите свое решение, затем проверьте (в FusLogvw) первую строку, где загружается сборка Unity, дважды щелкните ее и посмотрите вызывающую сборку, и вот вы идете.

открыть Диспетчер IIS

Выбрать Пулы Приложений

затем выберите пул, который вы используете

перейдите в дополнительные настройки (справа)

измените флаг включить 32-разрядное приложение false на true.

для меня ни одно из других решений не работало (включая стратегию очистки/восстановления). Я нашел другое обходное решение, которое заключается в закройте и снова откройте Visual Studio.

Я думаю, это заставляет Visual Studio повторно загружать решение и все проекты, перепроверяя зависимости в процессе.

попробуйте очистить папки отладки и выпуска в вашем решении. Затем удалите и снова добавьте единства.

следующее сработало для меня.

кроме того, вы можете просто обновить корпоративную библиотеку до последней версии.

на 99%не удалось загрузить файл или сборку или один из его зависимостей проблема вызвана зависимостей! Я предлагаю вам выполнить следующие шаги:

запуск Зависимость Walker и откройте dll (в моем случае NativeInterfaces.dll )

вы можете увидеть одну или несколько dll с ошибкой в красном цвете ошибка при открытии файла.


это означает, что эта dll отсутствует в вашей системе; в моем случае имя dll MSVCR71.DLL

вы можете скачать missings dll из google и скопировать в правильном направлении (в моем случае c:\windows\system32 )

на этом этапе необходимо зарегистрировать новую dll в GAC( глобальный кэш сборок): откройте терминал DOS и пиши:

несмотря на первоначальный вопрос был опубликован 5 лет назад, проблема все еще сохраняется и довольно раздражает.

enter image description here

пример вывода:

Проверьте интернет.config / App.конфигурационный файл в вашем проекте. Проверьте правильность номеров версий.

это сработало для меня.

У меня была аналогичная проблема. ** Juntos ответ правильный * * но вы должны отметить один важный совет!

для unity 2.1.505.2 разные AssemblyVersion и AssemblyFileVersion указаны:

enter image description here

AssemblyFileVersion используется nuget, но CLR не заботится об этом! CLR будет использовать только AssemblyVersion!

поэтому перенаправления должны применяться к версия, указанная в AssemblyVersion: 2.1.505.0

screenshot

в обозревателе решений щелкните правой кнопкой мыши проект (не решение), на вкладке сборка выберите цель платформы : "любой процессор".

  • Goto:решение ->пакета
  • нажать на кнопку дополнительно Tab (найти ниже страницы)
  • добавить dll к дополнительным сборкам (таким образом, мы можем добавить внешние библиотеки DLL в sharepoint).

Я также получил эту ужасную ошибку и нашел решение для этого.

  1. Правой Кнопкой Мыши на имени решения
  2. Нажмите Очистить Решение
  3. Перезапустите Visual Studio
  4. свойства проекта Goto > > Build
  5. изменить конфигурация to релиз
  6. Начать Отладку (F5)

1) , 2)

Right Click on the Solution name

4) , 5)

Change Configuration to Release

надеюсь, это поможет вам также.

Не уверен, что это может помочь.

убедитесь, что имя сборки и пространство имен по умолчанию в свойствах в asemblies совпадают. Это решило мою проблему, которая дала ту же ошибку.

Спасибо Ридди М. Слежка сработала для меня.

в моем случае в папке bin была не ссылочная dll под названием Unity.MVC3, я попытался найти любую ссылку на это в visual studio без успеха, поэтому мое решение было так просто, как удалить эту dll из папки bin.

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

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

эта проблема произошла со мной, когда одна из моих зависимых библиотек компилировала DLL с "любым процессором", когда родительская библиотека ожидала компиляции "x64".

вы должны удалить свое имя приложения.dll-файл из выходной папки. Очистка отладочных и Выпускных папок. Перестроить и скопировать в выходную папку регенерированный dll-файл.

Я "Set as Startup Project" выгруженная / разархивированная библиотека / проект.

затем развернул его.

Я думаю, что он не мог найти .dll, потому что сначала его не было в сборке.

другая возможная причина: убедитесь, что вы случайно не дали обоим проектам одно и то же имя сборки в свойствах проекта.

следующее сработало для меня.

следите за конфликтующими ссылками. Даже после очистки и перестроения конфликтующие ссылки все равно вызовут проблему. Моя проблема была между AForge и Accord. Я удалил обе ссылки и снова добавил ссылки, повторно выбрав конкретную ссылку (в частности, в моем случае, просто Accord).

вот что сработало для меня:

  1. удалить ссылку
  2. переименовать DLL
  3. импортировать ссылку Еще раз

второй шаг был важен, по-видимому, так как он не работал без него.

попробуйте проверить, имеет ли свойство" копировать в локальный " для ссылки значение true, а конкретная версия-true. Это актуально для приложений в Visual Studio.

у меня было это сегодня, и в моем случае проблема была очень странной:

обратите внимание на случайные символы в конце XML-каким-то образом они были перемещены из номера версии в конец этого блока XML!

изменить на выше и вуаля! Все снова сработало.

Если это не работает, пожалуйста, не обижай меня . я тоже младший

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

Я получал ту же ошибку с некоторой DLL, отсутствующей в папке Bin. Я попытался удалить, восстановить все из Team Foundation Server, но не работал. Получил копию папки Bin из моего офиса-matelocal машины и заменил ее. Это тоже не сработало. Наконец, я вручную FTPed server, получил копию DLL, которая была появляться безвестно отсутствующим, а затем он начал показывать, что следующий файл в последовательности списка файлов отсутствует.

таким образом, я ftped-сервер получил всю папку Bin, вручную заменил каждый файл по одному. (Не Ctrl + All и заменить.. Я попытался: не получилось.) И каким-то образом это сработало.

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

Как добавлять файлы с расширением .dll

Утилита для установки

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

Не загружается файл cefsharp.core.dll

Если программа, в которой возникла проблема при запуске сейчас запущена, закройте её. И снова откройте после копирования нужной библиотеки dll.

Программы разного назначения могут выдавать ошибку «Не удалось найти файл или сборку либо одну из их зависимостей». Нередко она возникает также по вине драйверов для оборудования компьютера. MOM.implementation свидетельствует о том, что на ПК работает видеокарта от AMD. И в данный момент в его работа появилась критическая ошибка. Устраняется она полной переустановкой драйвера с удалением предыдущих файлов.

Видеоадаптеры в ПК

  1. Необходимо открыть диспетчер устройств. Его можно открыть так: нажмите WIN+R и введите devmgmt.msc;
  2. Найдите раздел с видеоадаптерами;
  3. Выберите действующую видеокарту в списке и нажмите по ней ПКМ;
  4. Курсором укажите пункт «Удалить»;
  5. Обновите драйвера для видеоадаптера, установите драйвер с диска/флешки или найдите для своей модели на сайте производителя.

После переустановки необходимого ПО компьютер снова заработает. Если вы ни разу не переустанавливали драйвера устройств, обратитесь к более опытным пользователям.

Загрузка DirectX

Для Windows требуется свежая версия компонента DirectX, который обновляется с сайта Microsoft и добавляется вместе с основными обновлениями. Если на экране вы видите уведомление об отсутствии файла Microsoft.directx.direct3d, понадобится установить новый компонент по ссылке DirectX. На компьютер загружается веб-установщик, который сканирует систему ПК на недостающий файлы, загружает их и устанавливает.

Недостаёт файла system.badimageformatexception

Видеоинструкция

В этом видео вы найдёте решение ошибки «Не удалось загрузить файл или сборку» при работе в приложении Visual Studio.

В этой статье я собираюсь поделиться своим опытом устранения неполадок, связанных со сборкой в ​​системах Windows. У моего клиента возникла проблема, из-за которой он не мог заставить надстройку Outlook работать на его компьютере с Windows. Он получал ошибку исключения:

Не удалось загрузить файл или сборку Microsoft.Office.Interop.Outlook или одну из его зависимостей. Система не может найти указанный файл

при открытии Outlook.

Не удалось загрузить файл, сборку или одну из ее зависимостей.

Итак, я пошел в «Пуск»> «Выполнить» и ввел «Сборка».

В списке я нашел конкретную dll, которую искал. Когда я проверил версию, я обнаружил, что версия кажется другой. То есть версия, которую искала надстройка Outlook, была v14.0, но в сборке я обнаружил, что присутствуют v10.0 и v14.0. Поэтому я попытался удалить сборку v10, щелкнув правой кнопкой мыши dll и выбрав «Удалить».

изображение

Затем я вспомнил о методе, который использовал давно, когда переключил представление сборки на представление папки.

Для этого откройте реестр Windows и перейдите к следующему ключу:

HKEY_LOCAL_MACHINE ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Microsoft Fusion

изображение

Здесь создайте новый DWORD «DisableCacheViewer» и присвойте ему значение «1».

изображение

Теперь я вернулся к сборке, и он изменил вид на папки:

изображение

Я просмотрел конкретный файл DLL, удалил все его записи и перезагрузил систему.

Наконец, я удалил DisableCacheViewer из реестра и вернулся в режим сборки.

Файл больше не существует. Я снова установил Office и снова установил надстройки, и теперь он работает нормально.

Используя тот же метод, вы можете легко удалить сборки, переключившись в режим просмотра папок.

Надеюсь, этот совет вам поможет.


.

Читайте также: