mi basta seguire le istruzioni aSQLite con "qualsiasi CPU" compilare l'opzione [incidente su una macchina a 64 bit quando incontrollato "preferire a 32 bit" opzione]
SQLite-on-Visual-Studio-with-NuGet-and-Easy-Instructions
e posso in grado di compilare campione C# appliation con
"any cpu"
opzione.
Ma quando si esegue l'applicazione, se scelgo
opzione"prefer 32 bit"
, il mio crash dell'applicazione:
"Unable to load DLL "SQLite.Interop.dll"
Se io deselezionare "preferiscono 32 bit" opzione funziona bene sul mio 64 bit macchina.
Why this happen?Any suggestion to fix it?
PS: io uso a 64 bit di Windows 8. e fornisco [86] e [64] cartelle per SQLite.
PS 1: Errore:
System.TypeInitializationException: L'inizializzatore di tipo per 'System.Data.SQLite.SQLiteFactory' ha generato un'eccezione. ---> System.DllNotFoundException: impossibile caricare DLL 'SQLite.Interop.dll': Impossibile trovare il modulo specificato. (Eccezione da HRESULT: 0x8007007E) a System.Data.SQLite.UnsafeNativeMethods.sqlite3_config_none (SQLiteConfigOpsEnum op) a System.Data.SQLite.SQLite3.StaticIsInitialized() a System.Data.SQLite.SQLiteLog.Initialize() a System.Data.SQLite.SQLiteFactory..cctor() --- Fine dell'analisi dello stack eccezione --- a System.Data.SQLite.SQLiteFactory..ctor()
PS 3:
I notice an interesting thing. Although at visual studio it craches, when i run my program exe, by just clicking it, it works.
Eseguire il debug dell'applicazione e scoprire cosa restituisce: System.IO.Directory.GetCurrentDirectory(); Questo è dove il tuo .dll dovrà probabilmente essere. – user1132959
Bene dà la directory my bin in modalità debug F: \ TestWorkSpace \ SQLiteTest \ bin \ Debug e c'è una cartella x86 che ha SQLite.Interop.dll.SQLite dice che guarderà la cartella x86 –
Quando eseguo il debug, anche se scelgo "perefer 32 bit" ... Prova a caricare sotto x64. "Tentativo di caricare la libreria SQLite nativa" F: \ TestWorkSpace \ SQLiteTest \ bin \ Debug \ x64 \ SQLite.Interop.dll "..." –