我理解为什么在32位和64位版本中提供System.Data.SQLite.dll.所以我们不要再纠缠于此并继续前进.:)
由于它以这种方式完成,它似乎使得纯粹的C#开发变得更加困难,有3个选择.
是仅支持32位并强制使用托管程序集来编译x86并在32或64位运行时处理它,并且当你在64位环境中时会失去优势.
是强制64位并且仅支持64位并且失去了在32位上运行的能力但是获得了64位的所有优点.
是创建两个版本的程序集,一个编译x86并使用32位SQLite,另一个编译x64并使用64位SQLite.它阻止使用"ANY"作为编译选项,并且能够轻松地将单个构建部署到任一类型.从开发的角度来管理并不是那么可怕,因为我们需要两个项目.只将C#代码正式放在一个,而另一个只使用"链接"到另一个代码.这仅用于编译目的.仍然让我们必须管理两个输出以进行部署.
尽管如此,我只是在寻找确认以上是唯一正确的选择.
如果我还有其他选择,请告诉我.具体来说,如果有方法可以获得一个可以编译为ANY的单个C#DLL,那么它可以利用32位或64位,具体取决于它的运行位置并仍然使用System.Data.SQLite.dll.
经过一段时间的努力来解决这个问题后,我终于决定在这里发帖提问.几天前我在sqlite论坛上发布了同样的问题,但该网站目前无法使用. http://sqlite.phxsoftware.com/forums/t/2669.aspx
所以,这里有一个问题:我有64位计算机和64位操作系统.一位同事拥有64位计算机和32位操作系统.我们开发了一个Web应用程序,它从服务器中提取大量数据并将其保存在内存SQLite数据库中,因此一切都可以运行得更快.现在我们在两台机器上使用32位SQLite.dll.但是我们想切换到64位dll(并增加我们可以使用和存储的数据量).我从http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki下载了以下 文件:sqlite-dotnet-x64-1007300.exe并在我的机器上安装了.我已将System.Data.Sqlite.dll和System.Data.Sqlite.Linq.dll放入lib文件夹,而我已将Sqlite.Interop.dll复制到bin\Debug文件夹中.当我使用Any CPU调试应用程序时,一切都在我的机器上工作正常,但是,我的同事正在收到错误.
我想使用64位dll并使用任何CPU构建exe文件,如果系统是32或64,请不要担心.这可能吗?如果这是我应该做的事情呢?提前致谢!
PS我们使用C# - Visual Studio 2008 3.5 SP1