在Linux for Mono中用C#读取GMDB库(用于GNet)

在Linux for Mono中用C#读取GMDB库(用于GNet),c#,linux,sqlite,mono,C#,Linux,Sqlite,Mono,我正在开发使用SQLite读取GNet数据库(gmdb,即SQLite数据库)的跨平台应用程序。在Windows中,我使用by System.Data.SQLite-所有这些都非常好用。但对于Linux(Debian或Ubuntu),我尝试通过Mono运行我的应用程序,Mono.Data.SqliteClient无法打开gmdb文件——它无法将其识别为数据库。顺便说一下,sqlite浏览器可以查看相同的数据库文件。系统上安装了Sqlite3 我尝试使用连接字符串“URI=file:/[path]

我正在开发使用SQLite读取GNet数据库(gmdb,即SQLite数据库)的跨平台应用程序。在Windows中,我使用by System.Data.SQLite-所有这些都非常好用。但对于Linux(Debian或Ubuntu),我尝试通过Mono运行我的应用程序,Mono.Data.SqliteClient无法打开gmdb文件——它无法将其识别为数据库。顺便说一下,sqlite浏览器可以查看相同的数据库文件。系统上安装了Sqlite3


我尝试使用连接字符串“URI=file:/[path]/Data.gmdb”打开文件。当我尝试打开连接时,收到错误“文件已加密或不是数据库”。(在windows中,应用程序打开了同一个文件。SQLite浏览器在Linux中成功地打开了这个数据库)

我找不到Mono C的解决方案。但是,使用标准libsqlite dev在C上编写库非常容易,如果您的目标是跨平台,请使用.NET Core而不是Mono。大多数NuGet软件包现在都是.NET内核就绪的。不,目标是将Winforms应用程序传递到Linux。net core不是WinForms的朋友没有WinForms也不会对您友好。要在Linux上编写GUI应用程序,请认真考虑其他选项(on .net Core),谢谢,但是目前我不能改变程序的基础设施——它是为Windows编写的现有的(大的)程序,我需要将它移植到Linux上。对于这个问题,我没有找到解决方案,我只是使用SQLite标准库在C上编写了共享库