【发布时间】:2013-01-02 23:27:18
【问题描述】:
在 Windows 7 上使用 SQLite 4.0 在 MonoDevelop 3.0.5 和 Mono 2.10.9 上进行开发。为我的活动运行时设置了使用 C# 和 Mono。目标框架是 Mono/.NET 4.0。
我的架构脚本可以很好地加载到 SQLite 中,我可以在命令行从 sqlite3.exe/sqlite3.dll 访问它,没有任何问题。当我从 MonoDevelop IDE 中执行代码时,我可以连接到数据库并执行 select/update/insert 并从我的 C# 代码调用函数,例如 count 和 last_insert_row_id(运行和调试都可以正常工作)。
当我尝试从命令行执行代码并调用 myprogram.exe 时,程序在第一次数据库调用时崩溃。异常的重要数据似乎是:
System.IO.FileNotFoundException:无法加载文件或程序集“Mono.Data.Sqlite,版本=4.0.0.0,Culture=neutral,PublicKeyToken=0738eb9f132ed756”或其依赖项之一。该系统找不到指定的文件。 文件名:'Mono.Data.Sqlite, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
数据库和 sqlite3.dll 与 myprogram.exe 位于同一目录中。这似乎是一个系统配置问题,不是我的强项。希望对于我未能在我的开发机器上配置的人来说是显而易见的。
【问题讨论】:
-
您如何准确地从命令行执行程序?
-
C:\
\myprogram\bin\Debug\myprogram.exe -
在调用之前尝试
cding 到C:\<path>\myprogram\bin\Debug。工作目录可能很重要。 -
我试图从 Debug 目录内部和外部调用该程序。结果是一样的。我没有提及打印出的警告:警告:程序集绑定日志记录已关闭。要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。打开它是否有助于诊断问题?我从来没有听说过这个功能。
标签: c# sqlite mono monodevelop