|Title:||.NET SQLite >126.96.36.199 is (still) not working on x86|
|Last Modified:||2012-01-19 01:06:12|
|Version Found In:||188.8.131.52|
I'm currently working on a .NET 4.0 project using the Entity Framework which is mapped to a SQLite database, which will be loaded by a path given by the user.
The ADO.NET Data Provider was working without any problems until I've tested it on a x86 machine. The application crashes everytime I try to read/load the database from my EntityModel with an BadImageException or and DllNotFound-Exception which is pointing to the SQLite.Interop.dll.
What I've tried so far: - Changed the project platform from "Any CPU" to "x86" ==> See above - Changed the references everytime I deployed my application from my x64 developing machine to the x86 DLLs "System.Data.SQLite.dll" and "System.Data.SQLite.Linq.dll" - Downloaded the Source, compiled it as "x86" ==> DllNotFound-Exception or BadImageException - Changed the Environment-Variable %PATH% and added the applications folder to it to provide .NET another safe place to find the DLL ==> DllNotFound-Exception - Tried the .NET 3.5 DLLs ==> Unable to load the DLL due it's version conflict ==> Fixed it by adding "useLegacyV2RuntimeActivationPolicy" to my app.config ( see below ) ==> Still the same exceptions - Tried the precompiled mixed binaries for .NET 3.5 and .NET 4.0 ==> DllNotFound-Exception - Precompiled statically-linked binaries ==> Again, no luck
I also tried downloading the DLLs from somewhere else, unfortunately, no luck again. To me it seems like the mixed binaries still "require" ( DllImport ) the SQLite.Interop.dll even when you download the non-static precompiled binaries. Various combinations of the points listed above also couldn't fix the problem.
Every tutorial on "how to deploy an application using Entity Framework with the SQLite-Connector" was based on the 184.108.40.206 or 220.127.116.11 version - it was my last desperate idea before I was finally giving up deploying to x86: The application was working fine when using the 2 years old 18.104.22.168 DLLs originally from phxsoftware.
Seriously: Why!? I spent 3 days trying to get this crappy application working on x86, tried almost everything I could imagine of and I fixed it by using an "ancient" DLL which works very well without any Interop.dll-Crap on both x86 and x64 !?!?!?!
Am I missing something or am I too stupid to run the same application with different target DLLs ( the x86 ) on my netbook !?
Even the sample x86 applications are still crashing when using the "newer" and "better" DLLs, except the phxsoftware-sample with it's 22.214.171.124 DLL.
What the... !?
My app.config looks like this:
<?xml version="1.0" encoding="utf-8"?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" /> </startup> <system.data> <DbProviderFactories> <remove invariant="System.Data.SQLite" /> <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /> </DbProviderFactories> </system.data> </configuration>
Please fix this major issue as soon as possible, so I can start moving back to 1.0.7X.0 to benefit from the new "improvements".
If you need some sample code or the InnerExceptions, just run the samples or tell me, I can provide them.
Best regards, cH40z-Lord
mistachkin added on 2012-01-19 01:06:12 UTC: