Tôi chỉ cần làm theo các hướng dẫn tạiSQLite với "bất kỳ cpu" biên dịch tùy chọn [tai nạn trên máy tính 64 bit khi không được kiểm soát "thích 32 bit" tùy chọn]
SQLite-on-Visual-Studio-with-NuGet-and-Easy-Instructions
và tôi có thể có khả năng biên dịch mẫu C# appliation với
"any cpu"
tùy chọn.
Nhưng khi tôi chạy ứng dụng, nếu tôi chọn
"prefer 32 bit"
tùy chọn, tai nạn ứng dụng của tôi:
"Unable to load DLL "SQLite.Interop.dll"
Nếu tôi bỏ chọn "thích 32 bit" tùy chọn nó hoạt động tốt trên 64 bit của tôi máy móc.
Why this happen?Any suggestion to fix it?
PS: tôi sử dụng 64 bit Windows 8. và tôi cung cấp [x86] và [x64] thư mục cho SQLite.
PS 1: Lỗi:
System.TypeInitializationException: Loại initializer cho 'System.Data.SQLite.SQLiteFactory' ném một ngoại lệ. ---> System.DllNotFoundException: Không thể tải DLL 'SQLite.Interop.dll': Mô-đun được chỉ định không thể tìm thấy. (Ngoại lệ từ HRESULT: 0x8007007E) tại System.Data.SQLite.UnsafeNativeMethods.sqlite3_config_none (SQLiteConfigOpsEnum op) tại System.Data.SQLite.SQLite3.StaticIsInitialized() tại System.Data.SQLite.SQLiteLog.Initialize() tại System.Data.SQLite.SQLiteFactory..cctor() --- End của nội ngoại lệ stack trace --- tại 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.
Gỡ lỗi ứng dụng của bạn và tìm hiểu điều này trả về: System.IO.Directory.GetCurrentDirectory(); Đây là nơi mà .dll của bạn có thể phải là. – user1132959
Vâng nó cung cấp cho thư mục bin của tôi trong chế độ gỡ lỗi F: \ TestWorkSpace \ SQLiteTest \ bin \ Debug và có thư mục x86 có SQLite.Interop.dll.SQLite nói rằng nó sẽ xem xét thư mục x86 –
Khi tôi gỡ lỗi, Mặc dù tôi chọn "perefer 32 bit" ... Nó cố gắng tải dưới x64. "Đang cố tải thư viện SQLite bản địa" F: \ TestWorkSpace \ SQLiteTest \ bin \ Debug \ x64 \ SQLite.Interop.dll "..." –