SQLite与VS2012和.NET 4.5 – 任何CPU构建

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

要求:

  • 我正在开发一个在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和任何CPU
  • 2012年的答案似乎很有希望,但对该答案的第一个评论破坏了我的希望: 在32位和64位C#世界中使用System.Data.SQLite的选项

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