Visual studio 2010 安装后报告缺少System.Data.SQLite.dll

Visual studio 2010 安装后报告缺少System.Data.SQLite.dll,visual-studio-2010,sqlite,.net-4.0,Visual Studio 2010,Sqlite,.net 4.0,我正在开发的桌面软件(.Net 4.0,在Visual Studio 2010下编译,目标:x86)第一次随System.Data.SQLite(1.0.86用于x86,来自System.Data.SQLite.org*)一起发布 在开发机器上(以及System.Data.SQLite-installer运行的每台其他机器上),一切都正常工作 但是,在测试机上,在安装(使用Visual Studio安装程序创建的标准MSI设置)启动应用程序并显示初始屏幕后,在显示GUI之前,应用程序会创建一个异

我正在开发的桌面软件(.Net 4.0,在Visual Studio 2010下编译,目标:
x86
)第一次随System.Data.SQLite(1.0.86用于x86,来自System.Data.SQLite.org*)一起发布

在开发机器上(以及System.Data.SQLite-installer运行的每台其他机器上),一切都正常工作

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

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

在应用程序目录(正确版本)中可以找到提到的文件本身,以及所有其他引用的DLL

我假设这在开发机器上工作,因为安装选项“InstallImages”。我没有在GAC中安装SQLite。应用程序项目直接引用预构建System.Data.SQLite.dll,并将
本地副本设置为
true

有没有我看不到的依赖关系? 或者它是微软Visual C++运行库(不存在于应用程序目录中)? 或者缺少
SQLite.Interop.DLL
(应用程序目录中不存在)

我怎样才能修好这些

  • =我使用的安装程序:

确保您安装了最新的微软Visual C++ 2010可重分发软件包。


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

是否在appconfig.xml中指定sqlite提供程序?如果是这样,请确保程序集的strong名称正确。@Gusdor:不,我在代码中使用的是DSN。我怀疑是这样的。现在,我必须找出,我如何才能强制用户安装此软件…您如何部署应用程序?我使用installshield,并简单地将可再发行文件添加到必备列表中。但是,您可以搜索注册表。Steam(例如)总是在每个应用程序的第一次运行时安装。这是令人恼火的,但建议这样做。