2

我正在使用 SQLite 进行单元测试,并可能将其用作本地开发/登台的数据库。

System.Data.SQLite 基本上有 2 个版本:x86 和 x64。正确的一个应该用于特定的平台。

我有 64 位 Win7,团队中的其他人可能使用 32 位操作系统。服务器的平台在这个阶段是未知的。

如果我在 64 位平台上使用 32 位版本的程序集,我会得到BadImageFormatException: Could not load file or assembly 'System.Data.SQLite'. 我相信尝试在 32 位平台上使用 64 位程序集也会发生类似的情况。

所以我的问题是引用 SQLite 程序集的最佳方法是什么,以便它不依赖于平台并且人们可以使用它?

在 64 位平台上使用 32 位版本的程序集是可以的(也许某处有一个开关?)。

4

1 回答 1

0

如果它已安装到 GAC 中,那么您只需引用程序集,系统就会选择正确的程序集。

否则,您需要确保“手动”引用正确的版本(过去,我使用的构建系统在构建时将正确版本复制到“deploy”文件夹。这些天,我所做的一切都是 64-有点,所以这没什么大不了的)。

或者,您可以将应用程序构建为 x86,然后仅使用 32 位版本。在项目属性的 Build 选项卡上,将“Platform target”设置为“x86”。您只需要对可执行文件执行此操作:DLL 仍然可以是 AnyCPU。

于 2010-04-29T00:47:08.853 回答