Ошибка asp-сервера «Не удалось загрузить файл или сборку», но сборка определенно есть.

4

В настоящее время я получаю следующую ошибку. На веб-сайте locahost.

Could not load file or assembly 'MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies. The located assembly manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

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

Кто-нибудь знает, что может вызвать эту ошибку?

Также каково определение манифеста сборки?

Заранее спасибо за помощь, я очень этому благодарен.

  • 0
    Я ненавижу эту проблему - я видел это сам прежде, черт возьми, dll появляется в мусорном ведре?
  • 0
    Кроме того - вы уверены, что вы используете версию 6.5.4.0?
Показать ещё 4 комментария
Теги:

6 ответов

8
Лучший ответ

в visual studio выберите ссылку в проводнике решений, затем в свойствах убедитесь, что для свойства Specific Version установлено значение false.

Если у вас есть запись для этой ссылки в web.config, отредактируйте файл и удалите информацию о версии.

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

, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d'

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

1

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

Внимательно прочитайте информацию об ошибках, которая содержит полезные сведения для исправления ситуации. Я бы не изменил файл machine.config. По его словам, приложение не может найти ссылку на сборку MySql.Web, а версия, которую она пытается ссылаться, - Version = 6.7.4.0.

На основе пути, в котором вы устанавливаете MySql, вы сможете найти правильные файлы сборки, например:

C:\Program Files\MySQL\Connector NET 6.7.4\Assemblies\v4.0\MySql.Data.dll

Скопируйте этот файл в папку bin. (Я бы скопировал все файлы в папке C:\Program Files\MySQL\Connector NET 6.7.4\Assemblies\v4.0\в папку bin)

Надеюсь, это поможет! Благодаря

0

Я получал ту же ошибку, и файл абсолютно существовал. Если вы видите SGEN рядом с вашей ошибкой, вы можете попробовать следующее:

В окне свойств проекта перейдите в раздел "Сборка" и в разделе "Выход" перейдите в раскрывающийся список "Генерация сериализации". Снова измените значение "Авто" на "Выкл." И "Сборка".

Вы можете установить его обратно в авто, если вам это нужно.

0

У меня было это на более раннем веб-сайте asp.net 2.0 на новой машине. В моем случае сборка MySql из GAC не могла быть загружена, потому что это был .Net 4.0. Сборка перенаправления в web.config не работает. Я зафиксировал его следующим образом:

0

Эта проблема сохраняется и в более новой версии MySql.Data. Просто измените версию из файла App.config:

<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-6.6.5.0" newVersion="6.6.5.0" />6.7.4.0

в oldVersion = "6.6.5.0"

<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
    <bindingRedirect oldVersion="6.6.5.0" newVersion="6.7.4.0" />
0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню