在我的程序中,我有这个简单的代码:
using System;
using System.Data;
using Mono.Data.SqliteClient;
....
IDbConnection cnx = new SqliteConnection("URI=file:reestr.db");
cnx.Open();
....
这就是我编译它的方式:
$ mcs Test.cs -r:System.Data.dll -r:mono.data.sqliteclient.dll
编译好了 . 但是当我用 ./Test.exe
运行它时,我收到此错误消息:
在程序集中缺少方法.ctor . 未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集'Mono.Data.SqliteClient,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 0738eb9f132ed756'或其中一个它的依赖关系 . 文件名:'Mono.Data.SqliteClient,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 0738eb9f132ed756'
我不确定我在这里做错了什么以及如何修复它 .
PS . 我正在使用Ubuntu作为我的操作系统 .
2 回答
看来
Mono.Data.SqliteClient
找不到原生的SQLite二进制文件:参考:http://www.mono-project.com/docs/database-access/providers/sqlite/
要为您的平台获取预编译的本机二进制文件(或源代码):
此外,如果您安装了SQLite本机共享库,它们是否可以通过
dlopen
获得?如果没有,您可以分配LD_LIBRARY_PATH
env . var so Mono可以在运行时找到它们 .Ubuntu Notes:
我用这种方式在Mac上解决了这个问题 . 右键单击引用上的Mono.Data.Sqlite,然后单击本地副本 . 这使单声道复制DLL到调试文件夹,您的应用程序将找到该库 .
OBS:抱歉我的英语不好 .