【问题标题】:How to setup System.Data.SQLite.dll如何设置 System.Data.SQLite.dll
【发布时间】:2025-11-24 15:45:01
【问题描述】:

我有一个使用 sqlite 的应用程序吗...

我试过了:

  1. 通过 ClickOnce 应用程序安装程序安装(有效)
  2. 我将 SQLite.dll 文件与 .exe 放在同一个文件夹中。 (有效}
  3. hmm 仅包含 .exe 的文件夹(不工作)

我的意思是当您构建项目并在文件夹 \bin\Debug 中获取 .exe 并将其移动到某个位置时,当您运行应用程序时将不会发生错误。

我想知道是否有一种方法可以在不安装 ClickOnce 应用程序设置的情况下运行?

我想在特定路径引用上设置 SQLite.dll?有可能吗?

-谢谢

【问题讨论】:

    标签: c# wpf sqlite


    【解决方案1】:

    System.Data.SQLite.dll 不是标准 .NET Framework 的一部分,因此在最初安装 .NET 运行时时它不会安装在客户端计算机的 GAC 中。

    这就是为什么您应该让您的可执行文件引用此 dll,并将其分布在与您的 exe 部署相同的文件夹中。

    或者您可以将它分发到其他地方,例如在应用程序设置的子文件夹中,并在配置文件或 .NET C# 代码中具有适当的条目,以指定必须从哪里加载标准位置中找不到的程序集.

    【讨论】:

    • 我有这个.. <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> 在特定路径中我该怎么做?
    【解决方案2】:

    您可以使用Nuget 来安装软件包。对于我的情况,它自动为我创建了 2 个子文件夹,即 x86 和 x64,我只是按照 bin 文件夹中的文件夹结构,它对我的​​情况很好。

    【讨论】:

    • 这意味着如果您有 2 个文件夹 -folder1 包含 SQLite.dll 文件以及同一文件夹中的 .exe。 (有效)-folder2 仅包含 .exe(不再有效)
    • 您可以通过谷歌搜索轻松获得答案。将 x86 与 x64 分开的建议解决方案是正确维护程序集依赖性。如果你不这样做,你可能会遇到一些问题,就像你的情况一样。在问为什么之前为什么不试一试?看看它是否适合您,然后进行 Google 搜索?
    • 这些东西也适用于我。但我的问题是当我移动或分离 .exe 与 .dlls 的东西时,它不再起作用了。 (我想我可以在任何地方运行的独立 .exe)
    • 程序集是项目的组件。除非您将所有代码都放在应用程序中,否则您将不得不分发项目的所有部分。
    最近更新 更多