Can't find PInvoke DLL 'SQLIte.Inerop.065.DLL' | SQLite, C#, WEC2013

Hello,

I’m using Colibri T30 with Iris Carrier Board.
I’m getting following error when I try to open SQLite connection using C# application:
"System.MissingMethodException : Can’t find PInvoke DLL ‘SQLite.Interop.065.DLL’ "

The software folder contains “System.Data.SQLite.dll” as well as “SQLite.Interop.065.DLL” files.

Same DLLs work with CE6 and CE7 images provided by Toradex, but on CE8 image this error is encountered.

I followed this thread : Database on WEC 2013 with VS2013 - Toradex Community

As suggested by valter.tx, I copied “SQLite.Interop.099.dll” to “FlashDisk\System” folder of Colibri T30; But still I’m facing the same problem.
I tried different versions (SQLite.Interop.065.dll,SQLite.Interop.099.dll & SQLite.Interop.102.dll). Nothing worked.

Is there any other file/configuration required to access SQLite using C# on CE8 image ?

!][1]

Windows Embedded Compact 2013 is not able to run DLLs build for a different version of the OS. Managed DLL contains no code, but still have a regular DLL header, this may prevent the OS from loading them anyway.
Are you using the Windows Embedded Compact 2013 specific version:
https://cesqlite2013.codeplex.com/
or the same one you used on CE6 and 7?
You many need a different DLL.

I’m using “cesqlite2013-27755\SQLiteADONET\sqlite-netFx39-binary-WinCE-ARM-2012-1.0.91.0” to test SQLite database. (Downloaded from https://cesqlite2013.codeplex.com/)

sqlite-netFx39-binary-WinCE-ARM-2012-1.0.102.0.zip from http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki#sqlite-netFx35-binary-PocketPC-ARM-2008 also threw "Can’t find PInvoke DLL ‘SQLite.Interop.102.dll’

http://sqlite.1065341.n5.nabble.com/Can-t-find-PInvoke-DLL-SQLite-Interop-101-dll-td89883.html
suggests appropriate MSVC runtime (“MSVCR110.DLL”) could be missing.

Hello, Is there any update as I’m still unable to open SQLite database in CE8 ?

@djbaliga, we had the same problem. It seems that C runtime libraries are not included in standard image. We have added the catalog SYSGEN_MSVCR to our custom image an that solved the issue. Alternatively you can cut and paste msvcp110d.dll, msvcr110.dll, msvcrt.dll & msvcr110d.dll from your SDK folder to \Windows on your device. Hope this will fix the issue also for you.

Thanks for the comment on that. We discussed including these DLLs into the image. But these DLLs are actually maintained by Visual Studio, so we decided to use the DLLs from VS and not have them in the image itself.

One other note: If you only have a single application we suggest to use the library and not only the DLL version.

Thaks samuel for the explanation. The problems come out using precompiled package provided by sqlite @ system.data.sqlite.org inside a pure managed application. In this case c runtime dlls are not distributed to the target by Visual Studio.

We have also a native project and, in that case, all works fine automatically.

@lerimini Thanks for your inputs. Copying those DLLs solved the issue :slight_smile: