Не удалось создать драйвер из NHibernate.Driver.SQLite20Driver - PullRequest
16 голосов
/ 18 ноября 2010

Вот код, который вызывает исключение

   public Configuration GetConfiguration()
    {
        var persister = SQLiteConfiguration
            .Standard
            .UsingFile("Test.db")
            .ShowSql();


        var configuration = Fluently
            .Configure()
            .Database(persister)
            .Mappings(map => map.FluentMappings.AddFromAssemblyOf<WordMap>())
            .BuildConfiguration();

        new SchemaExport(configuration).Execute(true, true, false);

        return configuration;

    }

Полный текст исключения:

Сбой: NHibernate.HibernateException: не удалось создать драйвер от NHibernate.Driver.SQLite20Driver, NHibernate, Версия = 2.1.2.4000, Культура = нейтральная, PublicKeyToken = aa95f207798dfdb4.

----> System.Reflection.TargetInvocationException: Исключение было сгенерировано целью вызова.

----> NHibernate.HibernateException: реализация IDbCommand и IDbConnection в сборке System.Data.SQLite может не найден Убедитесь, что сборка System.Data.SQLite находится в каталоге приложения или в глобальном кэше сборок. Если сборка в GAC, используйте элемент в файл конфигурации приложения для указания полного имени сборка.

Версия NHibernate: 2.1.2.4000
Версия System.Data.SQLite: 1.0.66.0
Целевая структура составляет 3,5 (x86)
Локальная копия для System.Data.SQLite включена.

Что может быть не так?

Ответы [ 5 ]

11 голосов
/ 08 июля 2012

Просто скопируйте System.Data.SQLite.dll библиотеку в базовый каталог вашего приложения (особенно там, где находится библиотека NHibernate.dll).Вам даже не нужно добавлять его в качестве ссылки в VS.

С уважением
Бронек

9 голосов
/ 05 января 2013

Я только что установил пакет SQLite NuGet, и это сработало для меня.

6 голосов
/ 12 декабря 2010

Я избавился от этой проблемы, добавив useLegacyV2RuntimeActivationPolicy = "true" в app.config. См. Проблема обновления приложения NHibernate SQLite до .Net 4.0

6 голосов
/ 17 января 2011

Не удалось создать драйвер из NHibernate.Driver.SQLite20Driver, NHibernate, Версия = 2.1.2.4000, Культура = нейтральная, PublicKeyToken = aa95f207798dfdb4

Решение:

testsettings: выбрать хостов выбрать запуск тестов в 64-битном процессе на 64-битной машине

надеюсь, что смогу помочь.

веселое кодирование

2 голосов
/ 18 ноября 2010

Если LocalCopy включен, включен ли он для версии System.Data.SQLite в стартовом проекте, потому что он будет там искать, а не в каталоге bin подпроекта.

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