2012-11-28 8 views
8

Ich entwickle WP8 App auf VS 2012 Express. Installierte SQLite für Windows Phone und Sqlite-net. Und importiert SQLite für Windows Phone als Referenzen.sqlite.cs konnte sqlite3 und community nicht finden

jedoch, als ich versuchte, das Projekt zu bauen heißt es:

Fehler 1 Der Typ oder Namespace-Namen ‚Gemeinschaft‘ konnte nicht gefunden werden (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis?)

und

Error 4 Der Typ oder Namespace-Name ‚Sqlite3‘ konnte nicht gefunden werden (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis?)

Was habe ich verpasst?

Antwort

4

Ich habe es getestet, scheint ein bisschen Problem mit Windows Phone 8 und Sqlite.

Die erste Sache, um Ihr Problem zu lösen, ist, die "Community.Charpsqlite.WP" Verweis auf die App hinzuzufügen. Öffnen Sie dazu den Nuget-Paketmanager und geben Sie "csharpsqlite" ein und installieren Sie das resultierende nuget-Paket in Ihrer App. Dies löst beide oben genannten Probleme, die Sie in Ihrer Frage erwähnt haben. aber Agian, wirft ein anderes Problem auf. Es gibt einige inkompatible Methoden zwischen "Community.Charpsqlite.WP" und SQLite.cs Datei von "sqlite-net". Eine Lösung hierfür besteht darin, die Methoden in SQLite.cs manuell zu ändern, um die Inkompatibilitäten zu beheben.

Alternativ, wenn der obige Prozess für Sie nicht funktioniert, dann verwenden Sie den Prozess von WP7 sqlite wie in der dotnetslackers link erwähnt. Testen Sie dies in einem separaten Projekt und hoffentlich sollte das funktionieren.

+0

Danke, ich werde es versuchen. – Nexus2020

+1

Da seit dem Schreiben mehr nugt-Pakete hinzugefügt wurden, laden Sie das Paket http://www.nuget.org/packages/wp7sqlite/ herunter. –

9

Ich glaube, Sie haben vergessen, USE_WP8_NATIVE_SQLITE zu Ihrem bedingten Kompilierungssymbol hinzuzufügen.

#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

Ich gehe davon aus, gefolgt Sie die Anweisung in diesem post

In der Post gibt es eine Anweisung, dass Sie ein C++ Projekt zu Ihrer Lösung Sqlite namens hinzufügen . Sie erhalten es von GitHub. Zugegeben, das ist sehr gut in der Post versteckt und leicht zu übersehen.

Nachdem Sie das C++ - Projekt in Ihre Lösung aufgenommen haben, sollten Sie einen Verweis darauf aus Ihrem C# -Projekt hinzufügen.

Referenz hinzufügen -> Lösung ->wählen Sie die C++ "SQLite" Projekt Als Referenz

Danach, und das Hinzufügen der Build-Konstante USE_WP8_NATIVE_SQLITE sollte es funktionieren.

1

In SQLite.cs, gibt es mehrere Orte, die Sie solche Linien

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

Ersetzen Sie einfach die Codes innerhalb #IF USE_CSHARP_SQLITE mit den Codes innerhalb #elif USE_WP8_NATIVE_SQLITE sehen und Sie sind gut zu gehen. Oder es gibt auch eine kurze Methode. Gehe zu Eigenschaften-> Build und danach; Fügen Sie "USE_WP8_NATIVE_SQLITE" hinzu und erstellen Sie die Lösung neu. Dies funktionierte für mich

Verwandte Themen