Отсутствует MySQL DLL?

Я воссоздал пример Northwind Spring/NHibernate, который поставляется с Spring.NET, но с MySQL, а не с SQLServer. Думаю, у меня почти все заработало, но я получаю это, когда пытаюсь использовать Hibernate для загрузки чего-либо из базы данных.

A first chance exception of type 'System.IO.FileNotFoundException'
occurred in mscorlib.dll NHibernate.Util.ReflectHelper: 
ERROR lambda_method - Could not load type
MySql.Data.MySqlClient.MySqlCommand, MySql.Data.
System.IO.FileNotFoundException: Could not load file or assembly
'MySql.Data' or one of its dependencies. 
The system cannot find the file specified. 
File name: 'MySql.Data'    

Каждый проект (DAO, Service, Web) имеет ссылку на DLL MySQL.Data, поэтому я немного не уверен, что происходит.

Кто-нибудь может мне помочь?


person Richard    schedule 16.09.2011    source источник


Ответы (1)


Убедитесь, что MySQL.Data.dll действительно скопирован в выходную папку. И что вы используете правильную платформу (x32 против x64 бит) и правильную версию .NET (2,3,3,5 против 4). Если все в порядке, включите Fusion Logging. и взгляните на эту статью:

Для FileNotFoundException: в нижней части журнала будут указаны пути, которые Fusion пытался найти для этой сборки. Если это была загрузка по пути (как в Assembly.LoadFrom()), будет только один путь, и ваша сборка должна быть там, чтобы ее можно было найти. В противном случае ваша сборка должна находиться на одном из перечисленных путей зондирования или в GAC, если ее нужно найти.

Вы также можете получить это исключение, если не удалось загрузить неуправляемую зависимость или внутренний модуль сборки. Попробуйте запустить файл depend.exe для файла, чтобы убедиться, что неуправляемые зависимости могут быть загружены. Обратите внимание, что если вы используете ASP.NET, используемая переменная среды PATH может отличаться от той, которую использует командная строка. Если все они могут быть загружены, попробуйте ildasm.exe в файле, дважды щелкните «МАНИФЕСТ» и найдите записи «.file». Каждый из этих файлов должен находиться в том же каталоге, что и файл, содержащий манифест.

person Dmitry    schedule 17.09.2011
comment
Спасибо еще раз). Хм, сейчас я попробовал пару DLL для MySQL, и они копируются в папку debug/bin (которую Fusion сообщает мне, что ищет) моего проекта, поэтому я думаю, что они верны. Я не получаю никаких конкретных ошибок в своих файлах журналов от NHibernate, но когда я пытаюсь выполнить поиск в моем Dao, он говорит, что сеанс равен нулю, поэтому я предполагаю, что моя SessionFactory настроена неправильно. Но он установлен как свойство в моей конфигурации spring. Ааааа... - person Richard; 17.09.2011
comment
Откройте другой вопрос, если у вас сейчас другая проблема. - person Dmitry; 17.09.2011
comment
Все в порядке, теперь все работает отлично. Я разместил более полный ответ здесь forum.springframework.net/. Так приятно снова использовать Hibernate и Spring. С тех пор, как я перешел на .NET, мне пришлось кодировать операторы SQL в моих DAO, ура...! - person Richard; 17.09.2011