2010-11-19 2 views
4

Hier ist der Fehler, den wir erhalten, wenn auf einer Maschine, die Anwendung ausgeführt wird, das nicht funktioniert:Fehler beim Bereitstellen einer SQLite + Entity Framework C# -Applikation. [Reproduzieren BESTÄTIGT.]

System.ArgumentException: Der angegebene Speicheranbieter kann nicht in der Konfiguration gefunden werden, oder ist nicht gültig. ---> System.ArgumentException: Der angeforderte .Net Framework Data Provider konnte nicht gefunden werden. Es darf nicht installiert sein.

Wir haben es geschafft, die Fehlerursache einzugrenzen, und wir sind ziemlich sicher, dass es das ist. Auf meinem Dev-Rechner habe ich Visual Studio 2010 installiert. Als ich den ADO.Net SQLite-Provider (http://sourceforge.net/projects/sqlite-dotnet2/) am Ende der Installation installiert habe, fragt er mich, mit welchem ​​Visual Studio er installiert werden soll. Ich habe Visual Studio 2010 ausgewählt und es funktioniert. Durch die Installation des Setup-Pakets, das ich erstellt habe, kann ich die Anwendung verwenden und alles ist in Ordnung.

Auf meiner Mitarbeiter-Maschine haben wir den gleichen Prozess gemacht. Installieren Sie zuerst die Anwendung, ohne den Datenprovider (oben verlinkt) zu installieren, und wir haben diesen Fehler erhalten. Dann haben wir den Datenprovider installiert, Visual Studio 2010 am Ende des Installationsassistenten ausgewählt und die installierte Anwendung funktioniert jetzt.

Jetzt auf einer völlig neuen Windows XP virtuellen Maschine, versuchen wir, die Anwendung zu installieren und die Anwendung auszuführen, und wir erhalten den gleichen Fehler. Dann installieren wir den Datenprovider, aber es fordert uns nicht auf, ein Visual Studio auszuwählen, weil es nicht installiert ist, warum sollte ein Client es brauchen, oder? Wir versuchen, die installierte Anwendung nach der Installation auszuführen, und wir erhalten den SAME-Fehler, als ob der Treiber nicht einmal installiert wäre.

Irgendwelche Vorschläge? Was genau brauche ich für die Kunden? Es scheint, dass die Auswahl eines Visual Studio dieses Problem löst, also könnte diese Option etwas installieren, das wir nicht sehen?

Antwort

2

Versucht, die System.Data.SQLite.dll neben der .exe zu sitzen?

+0

Ja, nach der Installation gibt es die .exe-Datei und die erforderlichen DLL-Dateien. Wie gesagt, die Anwendung funktioniert nur, wenn ich die ado.net Treiber installiere und eine Visual Studio Version auswähle. –

20

bearbeiten app.config Ihre exe enthalten:

<system.data> 
    <DbProviderFactories> 
     <remove invariant="System.Data.SQLite"/> 
     <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"/> 
    </DbProviderFactories> 
</system.data> 
+0

Danke, du hast mich gerettet! – jkottnauer

+0

danke dir so viel –

3

Auf Vanilla XP oder Win7 Systemen brauchte ich die obige Konfigurationsdatei Modifikation, wie in Sqlite.NET Hilfe beschrieben, um zu laufen.

Jetzt, da ich es hinzugefügt habe, läuft das Programm nicht mehr auf meiner Dev-Box (VS2010), außer ich nehme es wieder heraus.

BTW Ich verwende SQLite.NET in einer Entity Framework-Anwendung.

+1

Ich auch ... Was ist das ??? –

Verwandte Themen