2010-04-29 59 views
2

我正在使用SQLite进行单元测试,并可能将其用作本地开发/分段的数据库。特定于引用平台的System.Data.SQLite

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

我有64位的Win7,团队中的其他人可能会使用32位操作系统。目前还不知道服务器的平台。

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

所以我的问题是什么是最好的方式参考SQLite程序集,使它不依赖于平台和人们可以使用它?

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

+0

可能的重复http://stackoverflow.com/questions/2728189/have-visual-studio-copy-x64-dll-or-x86-dll-when-building-ac-project – 2010-04-29 01:59:51

回答

0

如果它安装到GAC中,那么您只需引用该组件,系统将选择正确的一个。 (我过去曾使用过构建系统,在构建时将正确的版本复制到“deploy”文件夹中,这些日子里,我所有的东西做的是64位,所以这不是什么大不了的)。

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

+0

我已经从GAC引用它但它使用32位版本的程序集。 – 2010-04-29 00:58:52

+0

好的。我将不得不接受听起来像解决方案的答案。它不会像我期望的那样工作。现在我已经将我的平台设置为x86,并且始终使用x86版本。 – 2010-05-02 23:34:14