İlgili soru dosyası eklerken: Running my application on another machine gives me an errorHata App.config için bir yapılandırma
Bu gibi benim App.config dosya görünür:,
<?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>
benim dev makine işlerin bu Koşu ama ne zaman başka bir bilgisayara dağıtmak, bir Veri Sağlayıcı hatası alıyorum. (yukarıdaki ilgili soruya bakınız).
önerilen çözüm App.config dosyasında bu eklemek oldu:
<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>
Ben App.config dosyası, Visual Studio 2010 uygulamayı başlatırken bu hatayı almak eklediğinizde:
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)
Bu hatanın ne olduğuna ilişkin herhangi bir öneriniz var mı? Ayrıca, .sqlite dosyasının konumu, kurulduğu yere göre olduğundan, AppConfig dosyasındaki connectionString öğesini daha dinamik bir şekilde değiştirmek zorunda mıyım?
Yardımlarınız için teşekkürler.
DÜZENLEME: Burada birileri tarafından önerildiği gibi zaman config bu eklediğinizde
, bir hata alıyorum:
<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.
Evet, düşündüğüm bu. Dinamik bir şeyin yolunu nasıl değiştirebilirim? –
@Serge: Bu size hata veren şey değil, yapmanız gereken bir şey. Veri kaynağınızdaki veri kaynağınızı, veri kaynağı = " gibi göreceli bir yol olarak değiştirin. \ DocumentsDB.sqlite " ve sqllite veritabanını uygulama kökünüze yerleştirin. Ya da kullanıcı klasöründe olması gerekiyorsa, kaynak = " olabilirsiniz. DataDirectory | \ DocumentsDB.sqlite " – Bronumski
Çalışma zamanında değiştirmek isterseniz, [bu blog yayını] 'ndan 'RedirectedEntityFrameworkConnectionString' yöntemini kullanabilirsiniz. : //nitoprograms.blogspot.com/2010/06/sqlite-and-entity-framework-4.html). –