В настоящее время я получаю следующую ошибку. На веб-сайте 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 определенно находится на моей локальной машине в том месте, на которое она указывает. Я также попытался удалить и повторно добавить ссылку.
Кто-нибудь знает, что может вызвать эту ошибку?
Также каково определение манифеста сборки?
Заранее спасибо за помощь, я очень этому благодарен.
в visual studio выберите ссылку в проводнике решений, затем в свойствах убедитесь, что для свойства Specific Version
установлено значение false
.
Если у вас есть запись для этой ссылки в web.config
, отредактируйте файл и удалите информацию о версии.
если вы закроете визуальную студию и откройте файл проекта с помощью текстового редактора, убедитесь, что в файле проекта версия сборки отсутствует в списке, а только имя и тип, поэтому просто удалите следующее:
, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d'
тогда он должен работать независимо от того, используете ли вы 6.5.5 или 6.5.4, если код использует классы и методы, доступные в обоих.
У меня возникла такая же ситуация и удалось решить проблему с помощью этих шагов,
Внимательно прочитайте информацию об ошибках, которая содержит полезные сведения для исправления ситуации. Я бы не изменил файл 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)
Надеюсь, это поможет! Благодаря
Я получал ту же ошибку, и файл абсолютно существовал. Если вы видите SGEN рядом с вашей ошибкой, вы можете попробовать следующее:
В окне свойств проекта перейдите в раздел "Сборка" и в разделе "Выход" перейдите в раскрывающийся список "Генерация сериализации". Снова измените значение "Авто" на "Выкл." И "Сборка".
Вы можете установить его обратно в авто, если вам это нужно.
У меня было это на более раннем веб-сайте asp.net 2.0 на новой машине. В моем случае сборка MySql из GAC не могла быть загружена, потому что это был .Net 4.0. Сборка перенаправления в web.config не работает. Я зафиксировал его следующим образом:
Загрузите определенную версию MySql.Web и MySql.Data из nuget: https://www.nuget.org/api/v2/package/MySql.Web/6.5.4 https://www.nuget.org/api/v2/package/MySql.Data/6.5.4
Откройте загруженные пакеты с помощью zip-инструмента (например, 7zip) и извлеките сборки .NET 2.0 в каталог bin на неисправном сайте asp.net.
Эта проблема сохраняется и в более новой версии 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" />
Я столкнулся с той же проблемой очень немногие дни назад, вы получаете эту ошибку, когда у вас есть сборка некоторой DLL с более ранней версией, и теперь вы меняете зависимую версию DLL, но не создавали DLL снова. Проверьте, есть ли у вас компонент, который был построен на более ранней версии. Пока мы создаем любую DLL, DLL сама в манифесте добавляет всю информацию о зависимости, чтобы она могла загружать все из них, когда это необходимо. Поэтому, если вы удалите эту версию DLL, вам необходимо перекомпилировать весь компонент, а затем использовать