【问题标题】:64-bit SQLite.dll and Any CPU64 位 SQLite.dll 和任何 CPU
【发布时间】:2011-09-24 02:55:41
【问题描述】:

在花了一些时间试图找出这个问题后,我终于决定在这里发布一个问题。几天前,我在 sqlite 论坛上发布了同样的问题,但该网站目前不可用。 http://sqlite.phxsoftware.com/forums/t/2669.aspx

那么,问题来了: 我有 64 位计算机和 64 位操作系统。一位同事有 64 位计算机和 32 位操作系统。我们开发了一个 Web 应用程序,它从服务器获取大量数据并将其保存在内存 SQLite 数据库中,因此一切都可以运行得更快。现在我们在两台机器上都使用 32 位 SQLite.dll。但是我们想切换到 64 位 dll(并增加我们可以使用和存储的数据量)。我从http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki下载 以下文件: sqlite-dotnet-x64-1007300.exe 并安装在我的机器上。我已将 System.Data.Sqlite.dll 和 System.Data.Sqlite.Linq.dll 放入 lib 文件夹,同时将 Sqlite.Interop.dll 复制到 bin\Debug 文件夹中。 当我使用 Any CPU 调试应用程序时,我的机器上一切正常,但是,我的同事遇到了错误。

我想使用 64 位 dll 并使用 Any CPU 构建 exe 文件,而不用担心系统是 32 还是 64。这可能吗?如果这是我应该做的事情呢? 提前致谢!

附:我们使用 C# - Visual Studio 2008 3.5 SP1

【问题讨论】:

  • 嗨,我也有同样的问题。你是怎么解决的?

标签: c# sqlite dll 64-bit in-memory-database


【解决方案1】:

我猜你必须同时提供 32 位和 64 位 SQLite.dll,并根据目标系统架构安装一个或另一个。

【讨论】:

  • 嗨丹尼尔!感谢您的帮助。
【解决方案2】:

今天,您不必再这样做了。只需确保像这样捆绑两个互操作 DLL:

path_to_exe\System.Data.SQLite.dll
path_to_exe\x64\SQLite.Interop.dll
path_to_exe\x86\SQLite.Interop.dll

System.Data.SQLite.dll 会根据平台找到正确的。

【讨论】:

【解决方案3】:

只需从nuget 安装它。它将安装两个版本,并将它们复制到单独的文件夹中并根据目标系统使用。只需将构建模式设置为任何 CPU 即可!
来自here

【讨论】:

    猜你喜欢
    • 2012-03-06
    • 1970-01-01
    • 2011-07-10
    • 2011-11-11
    • 2017-05-12
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多