ich die Anweisung folgen Sie einfach aufSQLite mit "jede CPU" kompilieren Option [Absturz auf 64-Bit-Maschine, wenn nicht markiert "bevorzugen 32 Bit" option]
SQLite-on-Visual-Studio-with-NuGet-and-Easy-Instructions
und ich kann in der Lage Probe C# appliation kompilieren mit
"any cpu"
option.
Aber wenn ich Anwendung ausführen, wenn ich
"prefer 32 bit"
Option, mein Absturz der Anwendung wählen:
"Unable to load DLL "SQLite.Interop.dll"
Wenn ich deaktivieren Sie "bevorzugen 32 Bit" Option, es funktioniert auf meinem 64-Bit Maschine.
Why this happen?Any suggestion to fix it?
PS: Ich verwende 64-Bit-Windows 8 und ich biete [x86] und [x64] Ordner für SQLite.
PS 1: Fehler:
System.TypeInitializationException: Der Typ Initialisierer für 'System.Data.SQLite.SQLiteFactory' hat eine Ausnahme. ---> System.DllNotFoundException: DLL 'SQLite.Interop.dll' konnte nicht geladen werden: Das angegebene Modul konnte nicht gefunden werden. (Ausnahme von HRESULT: 0x8007007E) bei System.Data.SQLite.UnsafeNativeMethods.sqlite3_config_none (SQLiteConfigOpsEnum op) bei System.Data.SQLite.SQLite3.StaticIsInitialized() bei System.Data.SQLite.SQLiteLog.Initialize() bei System.Data.SQLite.SQLiteFactory..cctor() --- Ende der Ausnahmestapelüberwachung --- bei 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.
Debuggen Sie Ihre Anwendung und finden Sie heraus, was dies zurückgibt: System.IO.Directory.GetCurrentDirectory(); Dies ist, wo Ihre .dll wahrscheinlich sein muss. – user1132959
Nun gibt es das my bin-Verzeichnis im Debug-Modus F: \ TestWorkSpace \ SQLiteTest \ bin \ Debug und es gibt x86-Ordner, der SQLite.Interop.dll hat.SQLite sagt, es wird x86-Ordner –
Wenn ich debuggen, Obwohl ich "pererefer 32 Bit" wählen ... Es versuchen, unter x64 zu laden. "Versuch, native SQLite-Bibliothek zu laden" F: \ TestWorkSpace \ SQLiteTest \ bin \ Debug \ x64 \ SQLite.Interop.dll "..." –