1

我正在开发的桌面软件(.Net 4.0,在 Visual Studio 2010 下编译,目标x86:)首次随 System.Data.SQLite(1.0.86 for x86,来自 system.data.sqlite.org*)一起提供.

在开发机器(以及运行 System.Data.SQLite-installer 的所有其他机器)上,一切正常。

然而,在测试机器上,在安装(使用 Visual Studio 安装程序创建的标准 MSI 设置)启动应用程序并显示初始屏幕后,在显示 GUI 之前,应用程序会创建一个异常并出现错误:

System.IO.FileNotFoundException:无法加载文件或程序集“System.Data.SQLite.dll”或其依赖项之一。

提到的文件本身与所有其他引用的 DLL 一起位于应用程序目录(正确版本)中。

由于设置选项“安装图像”,我认为这适用于开发机器。我没有在 GAC 中安装 SQLite。应用程序项目直接引用预构建 System.Data.SQLite.dll 并local copy设置为true.

有没有我没有看到的依赖项?还是缺少 Microsoft Visual C++ 运行时库(应用程序目录中不存在)?还是缺少SQLite.Interop.DLL(应用程序目录中不存在)?

我该如何解决这些问题?

4

1 回答 1

3

确保您安装了最新的 Microsoft Visual C++ 2010 Redistributable Package。 http://www.microsoft.com/en-gb/download/details.aspx?id=5555

为什么?sqlite DLL 中嵌入了一些非托管代码,这些代码在运行时直接从程序集运行。这对我来说是一个糟糕的图像格式异常,但你永远不知道!

于 2013-06-19T15:32:35.557 回答