我需要使用 WPF 应用程序部署 SQLite 文件。
我想列出在部署包含 SQLite 数据库文件的应用程序时必须考虑的事项。
到目前为止,我已经引用并设置了将本地复制为真 为了:
.并且我有两个互操作,其中 Copy to Output Directory 我保留为默认值 始终复制
在 app.config 文件中,我有:
<applicationSettings>
<MyApp.MySettings>
<setting name="connStrSQLite" serializeAs="String">
<value>data source="C:\MyFolder\MySQLiteFile.sqlite3"</value>
</setting>
</MyApp.MySettings>
</applicationSettings>
和
<connectionStrings>
<add name="MyEntities" connectionString="metadata=res://*/Model.ORM.MyModel.csdl|res://*/Model.ORM.MyModel.ssdl|res://*/Model.ORM.MyModel.msl;provider=System.Data.SQLite;provider connection string='data source="C:\MyFolder\MySQLiteFile.sqlite3"'" providerName="System.Data.EntityClient" />
</connectionStrings>
我想在 app.config 中,路径不适用于已部署的应用程序,因为它们现在指的是我的本地文件夹。
如何修改它们 ?
然后,我从这里查看了例如 SQLite deployment for .net application应将以下内容添加到 app.config 文件中。
<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>
还要别的吗?
最佳答案
关于您的连接字符串 - 对于 ClickOnce 安装,您应该使用 |DataDirectory|替换而不是完整路径 - 运行时会自动将其转换为正确的本地路径:
<connectionStrings>
<add name="MyContext" connectionString="DataSource=|DataDirectory|Mydb.sdf" providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
关于.net - 使用 .NET 应用程序部署 SQLite 时的 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18563212/