2012-11-28 12 views
8

Pracuję nad aplikacją WP8 na VS 2012 Express. Zainstalowany SQLite dla Windows Phone i Sqlite-net. I zaimportowane SQLite dla Windows Phone jako odniesienia.sqlite.cs nie może znaleźć sqlite3 i społeczności

Jednak kiedy starałem się zbudować projekt to mówi:

Error 1 rodzaj lub nazwa przestrzeni nazw „Wspólnota” nie można odnaleźć (czy brakuje using dyrektywa lub odwołania do zestawu?)

I

błąd 4 typu lub obszaru nazwa „Sqlite3” nie można odnaleźć (czy brakuje using dyrektywa lub odwołania do zestawu?)

Co mnie ominęło?

Odpowiedz

4

Przetestowałem to, wydaje się być trochę problem z Windows 8 i Sqlite.

Pierwszą rzeczą, którą należy rozwiązać, jest dodanie do aplikacji odwołania "Community.Csharpsqlite.WP". Aby to zrobić, otwórz menedżera pakietów Nuget i wpisz "csharpsqlite" i zainstaluj wynikowy pakiet nuget w swojej aplikacji. To rozwiązuje oba powyższe problemy, o których wspomniałeś w swoim pytaniu. ale agian, rodzi kolejny problem. Istnieje kilka niekompatybilnych metod pomiędzy "Community.Csharpsqlite.WP" a plikiem SQLite.cs z "sqlite-net". Jednym z rozwiązań jest ręczna modyfikacja metod w pliku SQLite.cs w celu wyeliminowania niezgodności.

Ewentualnie, jeśli powyższy proces nie działa, należy użyć procesu WP7 sqlite, jak wspomniano w dotnetslackers link. Przetestuj to w oddzielnym projekcie i mam nadzieję, że to powinno zadziałać.

+0

Dzięki, dam mu szansę. – Nexus2020

+1

, ponieważ od czasu, gdy to napisał, dodano więcej pakietów nuget, należy pobrać pakiet http://www.nuget.org/packages/wp7sqlite/. –

9

Myślę, że zapomniałeś dodać USE_WP8_NATIVE_SQLITE do swojego symbolu kompilacji warunkowej.

#if USE_CSHARP_SQLITE 
using Sqlite3 = Community.CsharpSqlite.Sqlite3; 
using Sqlite3DatabaseHandle = Community.CsharpSqlite.Sqlite3.sqlite3; 
using Sqlite3Statement = Community.CsharpSqlite.Sqlite3.Vdbe; 
#elif USE_WP8_NATIVE_SQLITE 
using Sqlite3 = Sqlite.Sqlite3; 
using Sqlite3DatabaseHandle = Sqlite.Database; 
using Sqlite3Statement = Sqlite.Statement; 
1

Ja zakładając, że po instrukcji w tym post

w poście jest instrukcja, że ​​dodasz C++ projekt do rozwiązania o nazwie SQLite. Dostajesz to z github. Wprawdzie jest to bardzo dobrze ukryte w poście i łatwo go przeoczyć.

Po dodaniu projektu C++ do swojego rozwiązania powinieneś dodać do niego odnośnik z projektu C#.

Dodaj odwołanie -> rozwiązanie ->wybrać C++ "Sqlite" projekt jako punkt odniesienia

po tym, i dodając gromadzeniu stałą USE_WP8_NATIVE_SQLITE powinno działać.

1

W SQLite.cs, istnieje kilka miejsc, można zobaczyć takie linie

#if USE_CSHARP_SQLITE 
... 
... 
#elif USE_WP8_NATIVE_SQLITE 
... 
... 

Wystarczy zastąpić kody wewnątrz #if USE_CSHARP_SQLITE z kodami wewnątrz #elif USE_WP8_NATIVE_SQLITE i jesteś dobry, aby przejść. Albo jest też krótka metoda. Idź do właściwości-> buduj i potem; dodaj "USE_WP8_NATIVE_SQLITE" i przebuduj rozwiązanie. To zadziałało dla mnie

Powiązane problemy