.net 参考特定于平台的System.Data.SQLite

.net 参考特定于平台的System.Data.SQLite,.net,visual-studio,assemblies,sqlite,platform,.net,Visual Studio,Assemblies,Sqlite,Platform,我正在使用SQLite进行单元测试,并可能将其用作本地开发/登台的数据库 System.Data.SQLite基本上有两个版本:x86和x64。对于特定平台,应使用正确的 我有64位Win7,团队中的其他人可能会使用32位OSs。服务器的平台在此阶段未知 如果我在64位平台上使用32位版本的程序集,我会得到BadImageFormatException:无法加载文件或程序集“System.Data.SQLite”。我相信在32位平台上使用64位汇编时也会发生类似的情况 所以我的问题是,引用SQL

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

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

我有64位Win7,团队中的其他人可能会使用32位OSs。服务器的平台在此阶段未知

如果我在64位平台上使用32位版本的程序集,我会得到
BadImageFormatException:无法加载文件或程序集“System.Data.SQLite”
。我相信在32位平台上使用64位汇编时也会发生类似的情况

所以我的问题是,引用SQLite程序集的最佳方法是什么,这样它就不依赖于平台,人们就可以使用它了


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

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

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


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

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

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


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

我从GAC中引用了它,但它使用32位版本汇编。Ok。我将不得不接受这个听起来像解决办法的答案。但它并不像我预期的那样有效。目前,我已经为我的项目将平台设置为x86,并一直使用x86版本。我从GAC引用过它,但它使用32位版本assembly.Ok。我将不得不接受这个听起来像解决办法的答案。但它并不像我预期的那样有效。目前,我已经为我的项目将平台设置为x86,并一直使用x86版本