.net - 使用 .NET 应用程序部署 SQLite 时的 list

标签 .net sqlite deployment clickonce

我需要使用 WPF 应用程序部署 SQLite 文件。

  • 部署技术是 ClickOnce。
  • 包含 Entity Framework 以与数据库一起使用。

  • 我想列出在部署包含 SQLite 数据库文件的应用程序时必须考虑的事项。

    到目前为止,我已经引用并设置了将本地复制为真 为了:
  • System.Data.SQLite
  • System.Data.SQLite.Linq

  • .并且我有两个互操作,其中 Copy to Output Directory 我保留为默认值 始终复制
  • SQLite.Interop.dll (x86)
  • SQLite.Interop.dll (x64)

  • 在 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=&quot;C:\MyFolder\MySQLiteFile.sqlite3&quot;'" 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/

    相关文章:

    c# - nhibernate 从 Fluent 映射到通过代码映射

    .net - 我可以将实体的可选引用投影到投影结果类型的可选引用中吗?

    c++ - SQLite 注册 VFS 导致段错误

    android - 更新时间戳时出现 Sqliteexception?

    SQLite 在一个查询中执行多个 UPDATES

    maven - 在 Maven 部署期间失去对 webapps 的权限

    c# - 计算 x 除以 x2 时的最大舍入差异

    c# - WPF C# 应用程序部署 - 运行 exe 时没有任何反应

    sharepoint - 如何部署面向公众的 SharePoint 2007 站点

    c# - 使用反射来获取对象属性的属性