SQLite with VS2012 和 .NET 4.5 -- 任何 CPU 构建

本文关键字:任何 CPU 构建 with VS2012 NET SQLite | 更新日期: 2023-09-27 18:37:00

我尝试查看相关问题的答案,但没有找到任何不是几年前的东西(不确定它们是否仍然是首选答案)或完全回答我的问题。

要求:

  • 我正在开发一个在 32 位和 64 位计算机上运行的 C# 应用程序。我的客户端不想基于 x86 与 x64 创建两个不同的版本。
  • 我们正在使用 SQLite、VS2012 和 .NET 4.5。以下是可用于 SQLite 的 DLL:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

遗憾的是,DLL 分为 32 位或 64 位版本。

问题:

  • 是否可以同时包含 DLL 并根据处理器切换它们?我该怎么做?
  • 我已经阅读了一些关于 GAC 的信息,从我所读到的内容来看,这是一个本地解决方案。要为我的应用程序实现这一点,我必须为每个安装将 DLL 安装到 GAC,对吗?
  • 我可以强制程序在 64 位环境中
  • 以 32 位模式运行,从而失去 64 位优势,但能够在两种环境中运行我的程序而不会出现问题吗?

我不确定的一些可能答案是否适用于我的情况:

  • 查看最新答案(第三个向下):64 位 SQLite.dll 和 Any CPU
  • 2012 年的答案似乎很有希望,但对该答案的第一条评论粉碎了我的希望:在 32 位和 64 位 C# 世界中使用 System.Data.SQLite 的选项。

SQLite with VS2012 和 .NET 4.5 -- 任何 CPU 构建

是的。只需使用 NuGet 包 System.Data.SQLite。它会将 x86 和 x64 子目录安装到您的项目中,并在编译后安装到您的 bin 中。32 位和 64 位互操作 DLL 将复制到这些 DLL 中,并在运行时根据您的 CPU 进行适当选择。因此,您可以在选择"任何 CPU"的情况下进行构建,并且可以在 32 位或 64 位 Windows 上运行您的应用程序。