首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C#跨平台应用程序上的SQLite

C#跨平台应用程序上的SQLite
EN

Stack Overflow用户
提问于 2010-03-08 18:38:35
回答 9查看 7.9K关注 0票数 16

有人能帮助/指导我在Linux (MONO)和Windows (.NET)上使用SQLite lib吗?

在linux上我使用本机mono sqlite客户端,在windows上我使用http://sqlite.phxsoftware.com/

有没有办法像这样定义“using”指令:

代码语言:javascript
复制
#if (linux)
  using Mono.Data.Sqlite;
#else
  using System.Data.SQLite;

另一个问题是两种实现的细微差别,比如:

代码语言:javascript
复制
cmd = new SqliteCommand(); // mono
cmd = new SQLiteCommand(); // sqlite.phxsoftware.com

等待任何帮助

如果你对有更好的了解,或者更简单的方法来做这件事,将非常感谢你的信息。

谢谢

EN

回答 9

Stack Overflow用户

发布于 2010-03-09 14:24:50

您可以使用csharp-sqlite,它是到Sql-Lite的C#的一个端口。它非常活跃,并且基于3.6.22版本的SqlLite。请参阅Miguel的comments,了解如何尝试加快速度。

票数 4
EN

Stack Overflow用户

发布于 2014-01-16 00:38:25

我最近也遇到了这个问题:通过Visual Studio在Windows上构建一个使用Sqlite的应用程序,并将其部署到Ubuntu Server box上进行生产。

我找到的最简单的解决方案是使用Sqlite的Mono驱动程序:。

事情本来可以简单一点,但是还没有打包到官方的Mono版本中。

所以你必须从源代码(the general instructions are here)编译Mono:

  • 首先编译整个Mono库,如果您想保留当前的Mono安装程序并复制Mono.Data.Sqlite.dll

,则无需安装该库

当然你可以“交叉编译”:我已经在Ubuntu Server上构建了Mono,并在Windows .Net项目中使用了动态链接库。

然后确保您的库路径中有 ( Windows的sqlite3.dll和Linux的sqlite3.so ):对于Windows,我只需将SQLite3.dll复制到Mono.Data.Sqlite.dll程序集旁边,对于Linux,它应该可以开箱即用。

然后,您的项目应该在Windows/.Net和Linux/Mono环境中无缝工作。

票数 4
EN

Stack Overflow用户

发布于 2010-03-08 18:56:45

您可以使用别名来解决命名差异

代码语言:javascript
复制
#if (linux)
  using SqlCommand = Mono.Data.Sqlite.SqliteCommand;
#else
  using SqlCommand = System.Data.SQLite;

我认为为不同的构建使用不同的程序集是一项更复杂的任务。您可以查看MSBuild文档

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2400668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档