2012-01-18 19 views
5

Ho un'applicazione Windows C# .NET perfettamente funzionante che utilizza un file di database SQLite3 per archiviare dati e moduli di visualizzazione.Impossibile caricare l'assembly System.Data.SQLite.dll

Quando distribuisco la mia app su qualsiasi macchina diversa dalla macchina di sviluppo, ottengo un'eccezione generata e il suo messaggio è "Impossibile caricare l'assembly System.Data.SQLite.dll o una delle sue dipendenze. Essere trovato."

Il riferimento System.Data.SQLite.dll nel progetto è impostato su Copia Local = True. Inoltre, ho provato a caricare manualmente l'assembly con Assembly.LoadFile. La DLL è posizionata nella directory di output. Ho anche provato a impostare la piattaforma target su Any CPU e su x86, nessuna differenza. Tutte le macchine con cui lavoro sono a 32 bit. Qual è il problema qui? Perché la mia applicazione tenta di caricare l'assieme e non riesce a trovarlo?

Grazie!

+1

Dai un'occhiata alla SO Discussione - http://stackoverflow.com/questions/1278929/could-not-load-file-or-assembly- system-data-sqlite – adatapost

+0

grazie, ma questa sembra una soluzione per un'applicazione web. Il mio è un'applicazione di Windows Form e la soluzione che hai allegato non ha funzionato .. – user1094786

+0

Come si distribuisce? Hai un progetto di installazione, copia la cartella di rilascio? – MPelletier

risposta

13

Ho avuto lo stesso problema dopo aver pubblicato il mio programma su un computer separato. L'installazione del pacchetto ridistribuibile Microsoft Visual C++ 2010 (x86) sul computer separato ha risolto il problema.

Nota: il computer separato già Microsoft Visual C++ 2010 Redistributable Package (x64 ) installato, è stato necessario l'x86 versione.

+0

Link è morto ... – jjxtra

+0

Grazie per avermi fatto sapere, stavo solo cercando di dare credito a dove avevo originariamente trovato la risposta al problema. Immagino che la mia spiegazione sarà sufficiente se la causa del problema è la stessa. –

6

'System.Data.SQLite.dll "richiede" msvcr100.dll ", che è una delle dipendenze. Sarà disponibile solo se è stato installato l'ultimo" Microsoft Visual C++ Redistributable "o qualsiasi altro prodotto che fornisce internamente questo.

Per esempio, VS2010 installerà C++ Redistributable per impostazione predefinita. Questo è il motivo per la vostra applicazione doesnot opere in qualche macchina, ma funziona in altri.

si potrebbe provare a incollare il "msvcr100.dll" nella cartella dell'applicazione bin e distribuire se non si desidera installare VC++ 2010 Redist in tutti i PC.

+0

Grazie - questo ha fatto il trucco nel mio caso. – Eternal21

Problemi correlati