MissingManifestResourceException при настройке NHibernate с SQLite - PullRequest
1 голос
/ 20 августа 2011

Я пытался настроить NHibernate с базой данных SQLite, и я, похоже, застрял с исключением, которое я не знаю, как обработать.

Вот мой файл hibernate.cfg.xml:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.driver_class">NHibernate.Driver.SQLite20Driver</property>
    <property name="connection.connection_string">
      Data Source=mynewdatabase.dbf;Version=3
    </property>
    <property name="dialect">NHibernate.Dialect.SQLiteDialect</property>
    <property name="query.substitutions">true=1;false=0</property>
    <property name="show_sql">true</property>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
 </session-factory>
</hibernate-configuration>

А вот мой файл person.hbm.xml:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
               assembly="SQLiteObjects"
               namespace="SQLiteObjects.Domain">
  <class name="Person">
    <id name="Id">
      <generator class="guid" />
    </id>
    <property name="FirstName" />
    <property name="LastName" />
    <property name="Age" />
    <property name="Height" />
  </class>
</hibernate-mapping>

При запуске следующего кода я получаю исключение MissingManifestResourceException (в последней строке)

    var cfg = new Configuration();
    cfg.Configure();
    cfg.AddAssembly(typeof(Person).Assembly);
    new SchemaExport(cfg).Execute(false, true, false);
    PersonRepository pr = new PersonRepository();
    cfg.BuildSessionFactory();

Я использую .NET 4.0 на 64-битной Windows 7 Ultimate.

Буду очень признателен за любую помощь.Спасибо!

1 Ответ

1 голос
/ 21 августа 2011

Последняя версия SQLite для .NET распространяется в виде 2 dll.

  • System.Data.SQLite.dll
  • SQLite.Interop.dll

Обе библиотеки должны присутствовать в той же папке, что и ваш EXE. Interop dll зависит от платформы, поэтому вам нужно вручную (или после сборки) скопировать версию x86 или x64.

Следует также помнить, что SQLite.Interop.dll его зависит от MSVCR100.DLL (часть распространяемого пакета Visual C ++ 2010 SP1). Вы можете получить его здесь:

Также убедитесь, что вы загрузили его с нового веб-сайта, проект теперь поддерживается командой SQLite:

Люди на SQLite.org перешли во владение Проект System.Data.SQLite. Новые релизы можно найти на новом сайт, System.Data.SQLite.org

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