2016-03-23 9 views
1

Это дополнительный вопрос изпакет dotConnect для SQLite не работает для 64-битного C# -проекта в VS2013?

http://stackoverflow.com/questions/36166266/sqlite3-dll-cannot-be-used-in-c-sharp-application-in-vs2013-on-win-7/36169278#36169278 

Я установил dotConnect.Express.for.SQLite от

https://www.nuget.org/packages/dotConnect.Express.for.SQLite/

Теперь, для C# проекта 32 бит, он работал. Но, для 64, я получил сообщение об ошибке:

An unhandled exception of type 'System.IO.FileLoadException' occurred in XMR.UserModel.dll 

    Additional information: Could not load file or assembly 'Devart.Data.SQLite, Version=5.2.457.0, Culture=neutral, PublicKeyToken=09af7300eec23701' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) 

, кажется, что .net нуждается в 64-разрядной версии, но установленная «dotConnect» 32 бита?

Любые предложения?

ответ

1

dotConnect для сборки SQLite построены с помощью опции/platform: anycpu. Таким образом, вы можете использовать сборки поставщика на любой платформе (x86 или x64). Для получения дополнительной информации см. http://msdn.microsoft.com/en-us/library/zekwfyz4.aspx.

Вы должны убедиться, что используете совместимую версию библиотеки процессоров sqlite3.dll. В процессе установки рабочего стола dotConnect для SQLite развернута версия библиотеки правильной емкости. Чтобы получить обе версии (x86 и x64) sqlite3.dll, установите рабочий стол dotConnect для SQLite Express с https://www.devart.com/dotconnect/sqlite/download.html. По умолчанию, установка помещает эти файлы здесь:

  • C: \ Program Files (x86) \ Devart \ dotConnect \ SQLite \ sqlite3.dll

  • C: \ Program Files (x86) \ Devart \ dotConnect \ SQLite \ x64 \ sqlite3.dll

при развертывании, создайте папку с именем «x86» (без кавычек) или «x64» (без кавычек) и поместить его в папку со сборкой приложения. Это первое место, где dotConnect для SQLite будет искать sqlite3.dll.