windows上没有单声道的单声道sqlite?

Posted

技术标签:

【中文标题】windows上没有单声道的单声道sqlite?【英文标题】:mono sqlite w/o mono on windows? 【发布时间】:2012-07-13 00:10:02 【问题描述】:

曾几何时,我问过if there was a way to use a sqlite db on windows/linux w/o two binaries。有人建议使用单声道,我问 Windows 上的 .NET 是否需要单声道安装,被告知不需要。

我从我的 linux vm 中获取了这个参考文件

mono\gac\Mono.Data.Sqlite\2.0.0.0__0738eb9f132ed756\Mono.Data.Sqlite.dll

然后我在 main() 中写了这两行

var connection = new Mono.Data.Sqlite.SqliteConnection("Data Source=test.db3");
connection.Open();

我得到了这个异常

System.TypeInitializationException was unhandled
  Message=The type initializer for 'Mono.Data.Sqlite.SqliteConvert' threw an exception.
  Source=Mono.Data.Sqlite
  TypeName=Mono.Data.Sqlite.SqliteConvert
  StackTrace:
       at Mono.Data.Sqlite.SqliteConvert.Split(String source, Char separator)
       at Mono.Data.Sqlite.SqliteConnection.ParseConnectionString(String connectionString)
       at Mono.Data.Sqlite.SqliteConnection.Open()
       at rsa_test.Program.Main(String[] args) in Program.cs:line 56
  InnerException: System.ArgumentException
       Message=Value does not fall within the expected range.
       Source=mscorlib
       StackTrace:
            at System.Runtime.CompilerServices.RuntimeHelpers.InitializeArray(Array array, RuntimeFieldHandle fldHandle)
            at Mono.Data.Sqlite.SqliteConvert..cctor()
       InnerException: 

那么在没有安装单声道的情况下不能使用单声道 sq​​lite 吗?还是我做错了什么?

【问题讨论】:

您是在询问 Mono.Data.Sqlite 提供程序是否与 [Microsoft's] .NET 二进制兼容?你用什么来编码?视觉 C# 表达?什么版本的 .NET? @ruffin Visual Studios 终极版,通过 VS2012beta(到期时可能是 express 或 pro)。使用 3.5 我真的认为你最好在 Windows 上编译它,下载单声道源并查看 mcs/class/ 文件夹。你也需要 sqlite C 库 【参考方案1】:

我遇到了同样的问题,发现dotConnect for SQLite 是另一种解决方案,它也兼容 Mono 和 Windows。

【讨论】:

【参考方案2】:

你不能使用 .NET 4.0,你已经使用 .NET 3.5

有一个bug:https://bugzilla.xamarin.com/show_bug.cgi?format=multiple&id=152

【讨论】:

以上是关于windows上没有单声道的单声道sqlite?的主要内容,如果未能解决你的问题,请参考以下文章

在 Centos 6 上安装最新的单声道

如何使用弹簧反应 webflux 中的单声道和助焊剂使用 DTO 制作新的单声道

如何使用嵌入在 C++ 中的单声道编译 C# 代码?

在 apache 中使用带有 ssl 的单声道

如何安装“Visual Studio的单声道调试”?

如何将我的单声道程序添加到启动中?