2013-07-16 4 views
0

Я создал настольное приложение, используя C#, имея базу данных mysql. Я установил mysql connector для подключения к mysql DB.Не удалось загрузить файл или сборку 'MySql.Data, Version = 6.7.4.0

Когда я даю абсолютный путь до директора проекта, я могу успешно запустить приложение. Однако, когда я скопировал файл .exe из папки bin/release, приложение не работает. Нужно MySql.Data.dll в текущей папке, тогда только это сработало, как мы можем удалить эту зависимость?

Я проверил другие свойства в ссылке, например Скопировать локально = true.

еще не работает.

+0

, в каком файле вы установили CopyLocal? – hallie

+0

возможно дублированный вопрос http://stackoverflow.com/questions/13965181/conect-mysql-with-mysql-enterprise-dll-message-could-not-load-file-or-assembly/13965377#13965377 – Sean

ответ

0

Вы можете потенциально установить DLL в GAC, но лично я бы не стал - проще развертывать приложение, если ему не нужны записи GAC. Для приложения .NET вполне нормально требовать, чтобы библиотеки сторонних разработчиков были размещены вместе с исполняемым файлом. Вы зависите от этой DLL, поэтому она должна быть доступна где-то. Либо это должно быть центральным местом (GAC), либо рядом с файлом exe.

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

Другой вариант должен был объединить сборки с ilmerge, но я бы рекомендовал против него, если вам действительно не нужно. (Я ничего не имею против ilmerge, но мне не нравится делать какие-либо шаги от простейшей модели развертывания, если я не обязан.)

Смежные вопросы