Verbundene Anfrage file: Running my application on another machine gives me an errorFehler beim Hinzufügen einer Konfiguration App.config
Dies ist, wie mein App.config-Datei wie folgt aussieht:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="DocumentsDBEntities" connectionString="metadata=res://*/Documents.csdl|res://*/Documents.ssdl|res://*/Documents.msl;provider=System.Data.SQLite;provider connection string="data source=C:\Users\Sergio.Tapia\Desktop\DocumentScannerDanyly\DocumentScannerDanyly\DocumentsDB.sqlite"" providerName="System.Data.EntityClient" />
</connectionStrings>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
</startup>
<appSettings>
<add key="Username" value="administrador"/>
<add key="Password" value="123456"/>
</appSettings>
</configuration>
das Lauf auf meinem dev Maschine funktioniert, aber wenn Bei der Bereitstellung auf einem anderen Computer erhalte ich einen Datenanbieterfehler. (siehe verwandte Frage oben).
Die vorgeschlagene Lösung war dies die App.config-Datei hinzuzufügen:
<system.data>
<DbProviderFactories>
<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>
Wenn ich hinzufügen, dass in die Datei App.config ich diese Fehlermeldung erhalten, wenn Sie die Anwendung in Visual Studio 2010 starten:
An error occurred creating the configuration section handler for system.data: Column 'InvariantName' is constrained to be unique. Value 'System.Data.SQLite' is already present. (C:\Users\Sergio.Tapia\Desktop\DocumentScannerDanyly\DocumentScannerDanyly\bin\Debug\DocumentScannerDanyly.vshost.exe.Config line 13)
Irgendwelche Vorschläge, was dieser Fehler ist? Da der Speicherort der .sqlite-Datei relativ zum Installationsort ist, muss ich den connectionString in der AppConfig-Datei auf etwas dynamischeres ändern?
Danke für die Hilfe.
EDIT:
Wenn ich dies auf die Config hinzufügen, wie hier von jemand vorgeschlagen, bekomme ich einen Fehler:
<system.data>
<DbProviderFactories>
<clear />
<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>
Failed to find or load the registered .Net Framework Data Provider.
Ja, das ist, was ich denke. Wie kann ich den Pfad zu etwas Dynamischem ändern? –
@Serge: Dies ist nicht das, was Ihnen den Fehler gibt, sondern etwas, das Sie in Betracht ziehen sollten. Ändern Sie Ihre Datenquelle in Ihrer Verbindungszeichenfolge in einen relativen Pfad wie Datenquelle = ". \ DocumentsDB.sqlite " und platzieren Sie die SQLITE-Datenbank in Ihrem Anwendungsstammverzeichnis. Oder wenn es im Benutzerordner sein müsste, könnte quelle = " | DataDirectory | \ DocumentsDB.sqlite " – Bronumski
Wenn Sie es zur Laufzeit ändern möchten, können Sie die Methode 'RedirectedEntityFrameworkConnectionString' aus [diesem Blogpost] (http: // : //nitoprograms.blogspot.com/2010/06/sqlite-and-entity-framework-4.html). –