views:

1480

answers:

2

I've broken the code down to the smallest possible statement:

Dim cn As System.Data.SQLite.SQLiteConnection

And I get the following error when calling the code from a WinForm applicaiton:

System.BadImageFormatException: Could not load file or assembly 'System.Data.SQLite, Version=1.0.65.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' or one of its dependencies. An attempt was made to load a program with an incorrect format. File name: 'System.Data.SQLite, Version=1.0.65.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139'

Yet calling the same piece of code from MS Unit Test I do not get the error, plus the full code set works as expected.

+1  A: 

Make sure you use correct assembly with respect to 32 and 64 bits.

Anton Gogolev
+6  A: 

SqlLite contains unmanaged code, you can't run it on a 64-bit operating system unless you deploy the 64-bit version. Quick fix: Project + Properties, Build tab, Platform Target = x86.

Hans Passant
If only I'd asked the question two hours ago :-) This would suggest to me that MS Test runs in 32 bit. Correct?
Tim Murphy
Yes, running corflags.exe on mstest.exe shows that it was also forced to run in 32-bit mode.
Hans Passant