|Title:||The testce.2008 project fails when targeted to a Windows Mobile 6.1 device|
|Last Modified:||2016-01-14 17:39:37|
|Version Found In:||18.104.22.168|
anonymous added on 2015-12-23 15:54:33:
I'm investigating the possibility of replacing SQL Server Compact with System.Data.SqLite for our legacy .NET Compact applications running on Windows Mobile 6.1 devices. I attempted using the precompiled binaries provided in sqlite-netFx35-binary-PocketPC-ARM-2008-22.214.171.124.zip and ran into issues. So I decided to try testing from the source available in sqlite-netFx-source-126.96.36.199.zip and following the "Test Windows CE Binaries Manually" instructions on the Release Procedures page. When executing the testce.2008 project targeting a Pocket PC 2003 SE emulator everything tests fine. However when I attempt to do the same using a Windows Mobile 6.1 Professional emulator I experience the same error as when I attempted my own sample project. System.MissingMethodException was unhandled Message="Can't find PInvoke DLL 'SQLite.Interop.099.dll'." StackTrace: at System.Data.SQLite.SQLite3.StaticIsInitialized() at System.Data.SQLite.SQLiteLog.Initialize() at System.Data.SQLite.SQLiteConnection..ctor(String connectionString, Boolean parseViaFramework) at System.Data.SQLite.SQLiteConnection..ctor(String connectionString) at System.Data.SQLite.SQLiteConnection..ctor() at test.Program.NewConnection() at test.Program.Main(String args) Searching the internet for solutions I found a suggestion of placing the System.Data.SqLite.dll and SqlLite.Interop.099.dll files in the root of the project folder. In my sample project this appears to work, though I'm at a loss why that would be the case. It's also problematic since we would expect to use this within our reference projects containing business logic, not directly from the mobile client project.
mistachkin added on 2015-12-23 21:24:15:
Are you running this from inside the Visual Studio 2008 IDE? If so, which build configuration are you using? Are you using the steps from: [/doc/trunk/www/release.wiki#testCeBinariesManually] Also, what issues did you run across using the precompiled DLLs?
anonymous added on 2015-12-28 18:03:27:
> Are you running this from inside the Visual Studio 2008 IDE? Yes. > If so, which build configuration are you using? Are you using the steps from: > [/doc/trunk/www/release.wiki#testCeBinariesManually] I'm following those exact instructions. I set "testce" as the startup project, I set the platform to "Pocket PC 2003 (ARMV4)", I set the solution configuration to "Debug". The only difference is that when the deploy dialog appears I'm selecting "Windows Mobile 6 Professional Emulator". When I select "Pocket PC 2003 SE Emulator" the test runs successfully. > Also, what issues did you run across using the precompiled DLLs? The same "Can't find PInvoke DLL 'SQLite.Interop.099.dll'." exception. I just wanted to see if there was something I was doing wrong, so I attempted to run the test from the source. When I saw that the same exception was produced, I decided to submit it here. Thanks for your help.
mistachkin added on 2015-12-29 05:55:19:
Unfortunately, I do not appear to have that emulator available here, so I cannot attempt to reproduce your issue directly. However, the issue may simply be with the Visual Studio IDE itself not deploying the files to the right directory on the target. Have you tried manually copying all the necessary files manually to the target deployment directory, e.g.: 1. "bin\2008\Pocket PC 2003 (ARMV4)\Debug\SQLite.Interop.099.dll" 2. "bin\2008\DebugCompact\bin\System.Data.SQLite.dll" 3. "bin\2008\DebugCompact\bin\testce.exe" 4. "bin\2008\DebugCompact\bin\test.cfg" 5. "bin\2008\DebugCompact\bin\test.sql" As long as the processor architecture is compatible and all of these files are in the same directory, I'm not sure why it would not work.