2012-11-28 14 views
8

Sto sviluppando l'app WP8 ​​su VS 2012 Express. Installato SQLite per Windows Phone e Sqlite-net. E SQLite importato per Windows Phone come riferimento.sqlite.cs non è stato in grado di trovare sqlite3 e community

Tuttavia quando stavo cercando di costruire il progetto si dice:

di errore 1 Il tipo o il nome dello spazio dei nomi 'Comunità' non è stato trovato (che le manca un un riferimento all'assembly direttiva using o?)

e

errore 4 Il tipo o dello spazio dei nomi il nome 'Sqlite3' non è stato trovato (che le manca un un riferimento all'assembly direttiva using o?)

Cosa mi sono perso?

risposta

4

L'ho provato, sembra essere un po 'un problema con Windows Phone 8 e Sqlite.

Per risolvere il problema, aggiungere il riferimento "Community.Csharpsqlite.WP" all'app. Per fare ciò, apri il gestore di pacchetti Nuget e digita "csharpsqlite" e installa il pacchetto risultante di nuget nella tua app. Questo risolve entrambi i problemi sopra citati nella tua domanda. ma in realtà, sorge un altro problema. Esistono alcuni metodi incompatibili tra "Community.Csharpsqlite.WP" e il file SQLite.cs da "sqlite-net". Una soluzione per questo è modificare manualmente i metodi in SQLite.cs per risolvere le incompatibilità.

In alternativa, se il processo di cui sopra non funziona, utilizzare il processo di sqlite WP7 come indicato nello dotnetslackers link. Prova questo in un progetto separato e spero che questo dovrebbe funzionare.

+0

Grazie, lo farò un tentativo. – Nexus2020

+1

poiché sono stati aggiunti più pacchetti di nuget da quando ha scritto questo, assicurati di scaricare il pacchetto http://www.nuget.org/packages/wp7sqlite/. –

9

Penso che ti sia dimenticato di aggiungere USE_WP8_NATIVE_SQLITE al tuo simbolo di compilazione condizionale.

#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

Sto assumendo avete seguito le istruzioni in questa post

Nel post c'è un'istruzione che si aggiunge un progetto C++ alla soluzione di nome SQLite. Hai capito da github. Certo, questo è molto ben nascosto nel post ed è facile non vederlo.

Dopo aver incluso il progetto C++ nella soluzione, è necessario aggiungere un riferimento al progetto C#.

Aggiungi riferimento -> soluzione ->scegliere il C++ progetto "Sqlite" Come riferimento

Dopo di che, e aggiungendo la build USE_WP8_NATIVE_SQLITE costante dovrebbe funzionare.

1

In SQLite.cs, ci sono molti posti si vedrà tali linee

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

Basta sostituire i codici all'interno #if USE_CSHARP_SQLITE con i codici all'interno #elif USE_WP8_NATIVE_SQLITE e siete a posto. Oppure esiste anche un metodo breve. Vai a properties-> build e after; aggiungere "USE_WP8_NATIVE_SQLITE" e ricostruire la soluzione. Questo ha funzionato per me

Problemi correlati