【问题标题】:SQLite deployment for .net application.net 应用程序的 SQLite 部署
【发布时间】:2011-10-07 14:58:11
【问题描述】:

我在我的 .net framework 4.0 WPF 应用程序中使用了 SQLite,它在开发环境中运行良好。我刚刚将 system.data.sqlite.dll 复制到我的应用程序安装位置,但它没有按预期工作。

谁能告诉我如何为新机器部署 SQLite。

仅分发 dll 还不够吗?我正在使用 installshiled 2011 来构建安装程序。如果有人有 SQLite 的合并模块,请分享。

我们将不胜感激早期的帮助。

提前致谢

维奈女士

【问题讨论】:

  • 在 x86/x64 方面一切都一样吗?
  • 不工作是什么意思?
  • 怎么没有按预期工作?
  • 还要考虑权限问题。尝试使用管理员权限运行您的可执行文件,看看它是否以这种方式工作。如果没有更多详细信息,我们无法为您提供帮助。
  • 很抱歉没有提供更多错误信息。我使用 WCF 数据服务访问 sql lite 数据库。它给出编译错误错误 175:在配置中找不到指定的存储提供程序,或无效。虽然我可以运行应用程序,但我无法将数据保存到数据库中......应用程序崩溃了......

标签: c# sqlite


【解决方案1】:

您应该能够仅使用互操作和数据 DLL 进行操作。我们的项目使用这些:

除非您使用 LINQ,否则不需要 LINQ。

我已经重命名了我计算机上的每个 SQLite3.dll 或 SQLite3.exe 副本(有几十个)并且应用程序继续运行。我正在检查以确保我的答案是正确的,这是我们必须要做的事情,以确保 我们的 安装也能正常工作。

【讨论】:

    【解决方案2】:

    Tangurena 说的是对的(这实际上帮助我让它工作),但您还需要包含 SQLite 自述文件中提到的配置设置:

    <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, Version=1.0.80.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
        </DbProviderFactories>
    </system.data>
    

    【讨论】:

      【解决方案3】:

      实际上,您应该能够从项目中复制 System.Data.SQLite.dll。当我将该引用添加到我的项目时,我通常将 CopyLocal 属性设置为 true,然后确保在制作安装程序时,我将该 DLL 与最终的 .exe 文件位于同一位置。我去年写了一篇关于这个的博客文章,也许我的文章中的某些内容会让你走上正轨:My Blog Post on SQLite and C#

      【讨论】:

        【解决方案4】:

        如前所述,您需要将其包含到您的应用配置中:

        <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, Version=1.0.80.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
        </DbProviderFactories>
        

        您还必须将 DLL 文件添加到引用中:

        • SQLite.Designer
        • System.Data.SQLite
        • System.Data.SQLite.Linq

        并为它们中的每一个设置属性“复制本地”值等于 true。 更多请访问我的博客info

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-01-23
          • 2020-12-14
          • 2013-07-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多