Не удалось загрузить файл или сборку 'MySql.Data, версия = 6.2.2.0 - PullRequest
16 голосов
/ 11 января 2010

Я работаю над настольным приложением с c # и базой данных MySQL. Когда я устанавливаю его установщик на мою машину, он работает нормально, но когда я устанавливаю его на другую машину, при попытке доступа к БД выдается следующее исключение. Я использую MySQL.Data.dll для связи с MySQL.

Не удалось загрузить файл или сборку 'MySql.Data, версия = 6.2.2.0, Culture = нейтральный, PublicKeyToken = c5687fc88969c44d' или одну из ее зависимостей. Система не может найти указанный файл.

Файл

и MySql.Data.dll присутствует в папке Project в папке Program Files

На самом деле, когда я запускаю его из его папки в файле Program, он работает без ошибок, но когда я пытаюсь запустить его из ярлыка в меню «Пуск», он выдает эту ошибку.

Ответы [ 7 ]

20 голосов
/ 02 апреля 2012

Похоже, я опаздываю на 2 года, отвечая на этот пост, но это может быть полезно для тех, кто все еще сталкивается с этой проблемой, так что вот мое заключение от 1 апреля 2012 года, 17:00 EST:

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

  • Скопируйте и вставьте MySql.Data.dll куда-нибудь в папку.
  • У вас есть копия любой версии MySql.Data.dll в GAC

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

В моем случае VS2008 всегда указывал на меня с той же ошибкой, что и вы. Затем я сделал это:

  • Удалена ссылка на локальную копию dll
  • Ссылка на DLL, найденную в GAC
  • И установите для свойства «Копировать локальный» значение «Истина» библиотеки DLL, щелкнув правой кнопкой мыши -> Свойства.

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

Кто-то спросил: «Где GAC?»:
http://msdn.microsoft.com/en-us/library/yf1d93sz(v=vs.110).aspx

9 голосов
/ 11 января 2010
  1. Правильно ли установлен ярлык в меню «Пуск» для рабочего каталога? (Подозреваю, что это наиболее вероятный ответ)

  2. Существует ли другая / неправильная версия MySql.Data.dll, установленная в GAC (глобальный кэш сборок)? Я видел, как это выдает подобные сообщения об ошибках раньше.

3 голосов
/ 11 января 2010

MySQL.data.dll присутствует в том же каталоге, что и файл .exe?

В таком случае MySQL.data.dll имеет правильную версию / открытый ключ, который ищет файл .exe?

2 голосов
/ 11 января 2010

Когда это происходит со мной, это обычно одно из двух:

Убедитесь, что MySql.Data присутствует на компьютере, на котором вы получили ошибку. (Невероятно, как часто файлы отсутствуют :-))

Если MySql.Data - это смешанный режим (собственный и управляемый код) 32-битная DLL. А ваш исполняемый файл указывает «Любой процессор». На 64-битной машине с 64-битной .NET это не получится с сообщением об ошибке, которое вы получили. Решение состоит в том, чтобы указать «x86» в качестве цели для исполняемого файла.

1 голос
/ 16 апреля 2018

У меня тоже была эта проблема, для меня это воссоздание строк подключения в настройках проекта. Они были настроены для предыдущей версии коннектора MySQL.

1 голос
/ 21 июня 2013

Причина Томми очень верна:

Мой проект ссылался на более старую версию MySql.Data.dll по сравнению с тем, что было фактически установлено на моей машине для разработки. Это приведет к той же ошибке.

Проверьте ваш файл .config:

И сравните этот verisonNr с versionNr файла, когда вы добавите новую ссылку на него.

Решение:

1) удалите строку из вашего конфигурационного файла и повторно добавьте ссылку

2) или удалите соединитель MySql .net и установите версию, на которую ссылается ваш проект.

0 голосов
/ 11 января 2010

Убедитесь, что DLL-библиотека MySql.Data, которую вы поместили в папку Project, является правильной версией (в данном случае 6.2.2.0).

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