Zachciało się człowiekowi zrobić aplikację korzystającą z bazy danych SQLite jako tej najprostszej – bez instalowania, bez zbędnych śmieci. Visual Studio uruchomione, projekt założony, dodane paczki przez Nuget Package Managera (w tym SQLite). Fajnie wszystko działa – baza założona, zapisy idą do bazy. Wszystko OK.
No to teraz „Publish” projektu. Instaluję aplikację i … nie działa. Po uruchomieniu rzuca błędem i zamyka się. No to zaczyna się szukanie przyczyn takiego stanu rzeczy. Informacje o błędzie są więc wujek google dostaje odrobinę roboty do wykonania. Szukanie, szukanie i jeszcze raz szukanie powodu powstawania błędu. Wyszło na to, że biblioteka „SQLite.Interop.dll” nie jest dołączana podczas publikacji projektu i nie ma jest potem „pod ręką”. No ale dlaczego? Szukanie po stackoverflow, szukanie po SQLite.org. Aplikacja po ręcznym dodaniu wspomnianej biblioteki zaczęła działać. Jednak to nie było rozwiązanie – ręczne kopiowanie biblioteki (awykonalne ;))? Po kolejnym śledzeniu tematu i wyszukiwaniu rozwiązania przyczyn i sposobu rozwiązania problemu nie dołączania biblioteki „SQLite.Interop.dll” do instalki aplikacji znalazłem wątek, w którym zostało podane proste rozwiązanie, które podaje poniżej:
Trzeba w projekcie założyć dwa foldery x86 oraz x64. Do tych folderów następnie dodać bibliotekę SQLite.Interop.dll – w odpowiedniej wersji 32-bit do x86 oraz 64-bit do x64. Biblioteka znajduje się w folderze „Packages” naszego projektu w ścieżce System.Data.SQLite.Core.1.0.105.2\build\net451\x86 oraz System.Data.SQLite.Core.1.0.105.2\build\net451\x64. Ustawiamy dla dodanych bibliotek „Copy always” i możemy cieszyć się bo pewnie zadziała
Po dodaniu tych bibliotek do podanych folderów x64 i x86 i po publikacji projektu oraz zainstalowaniu aplikacji uruchamia się ona prawidłowo co niezmiernie mnie cieszy.