SQLite jest napisane w C++. W przypadku systemu Windows jest on dystrybuowany jako skompilowana 32-bitowa (x86) .dll. Nie można z niego korzystać bezpośrednio, ponieważ jest to kod natywny, a programy .NET zazwyczaj nie lubią interakcji z natywnym kodem. Można to zrobić za pomocą czegoś, co nazywa się COM Interop, ale w moich rękach nie jest to łatwe ani ładne.
W swoje pytanie odwołujesz się do strony pobierania dla System.Data.SQLite. Jest to nieco inna implementacja niż zwykły stary SQLite. To wymaga C++ SQLite i opakowuje go z kodem .NET - pozwalając na użycie natywnego kodu C++ przez programy .NET (hooray, ktoś inny wykonał pracę).
Gdy zarówno kod natywny (C++ SQLite), jak i kod .NET (funkcje opakowania) są ze sobą połączone w jednym zestawie, nazywa się to złożeniem mieszanym i początkowo sensownie było umieścić wszystko w jednym pliku. Jeśli pracujesz nad rozwojem lub używasz SQLite na własnej maszynie, to używanie trybu mieszanego jest w porządku.
Jednak rzeczy zmieniły się w 64-bitowym systemie Windows, jeśli chcesz dystrybuować aplikację do klientów. Dzieje się tak, ponieważ zespoły w trybie mieszanym działają tylko na architekturze, dla której zostały skompilowane (białe kłamstwo, ale prawdziwe dla tej odpowiedzi). Począwszy od wersji 1.0.80.0 System.Data.SQLite, zdecydowanie zaleca się rozpowszechnianie: 1.) Wszystkie .NET .dll System.Data.SQLite.dll, które mogą działać na architekturach 32-bitowych lub 64-bitowych) I 2) 32 x 86-bitowy dll \ SQLite.Interop.dll I 3. 64 64 nieco dll \ SQLite.Interop.dll
all NET owijka (pozycja 1) dane z w której architekturze jest uruchomiona i wybiera odpowiednio 32-bitowy lub 64-bitowy plik dll.
Wszystko to jest opisane w System.Data.Strona pobierania SQLite, do której się odwołujesz, ale uznałam, że jest to mylące, dlatego oferuję moje podsumowanie.
Rozbieżność wersji w pytaniu wynika również z różnicy między SQLite i System.Data.SQLite.
[link] (http://stackoverflow.com/questions/93654/ is-there-a-net-c -wrapper-for-sqlite? rq = 1) – VictorEE
System.Data.SQLite jest również implementacją ADO.NET, ale nie wspomniałem o tym aspekcie, ponieważ nie jest on związany z twoim pytaniem. Zobacz [C# wrapper for SQLite] (http://stackoverflow.com/questions/93654/is-there-a-net-c-wrapper-for-sqlite?rq=1) – VictorEE