安装WPF应用程序时出现SQLite问题

时间:2013-10-21 09:40:12

标签: sqlite

我有.net 4.0 WPF应用程序。我的Active Solution平台是“任何CPU”,我在64位Windows 7系统上运行。我使用过Sqlite。它在我的系统上工作正常。但是当我安装时我的应用程序到其他一些机器,我收到一个错误“尝试加载一个格式不正确的程序。(HRESULT异常:0x8007000B)”。我尝试编译x86和x64,我得到相同的错误。任何想法可能是什么问题?

1 个答案:

答案 0 :(得分:0)

http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

网站上报告

如果开发和客户机器可能具有不同的处理器体系结构,则可能需要多个二进制包。对于这种情况,强烈建议使用本机库预加载功能。它从版本1.0.80.0开始提供,默认情况下启用。为了利用此功能,必须将单独的托管和互操作程序集与XCOPY部署一起使用(即混合模式程序集不支持此功能,也不将程序集部署到全局程序集缓存时),从而导致一个看起来像这样的应用程序部署:

  • \ App.exe(可选,仅限托管应用程序可执行程序集)
  • \ App.dll(可选,仅限托管应用程序库程序集)
  • \ System.Data.SQLite.dll(必需的,仅管理的核心程序集)
  • \ System.Data.SQLite.Linq.dll(可选,仅限托管的LINQ程序集)
  • \ System.Data.SQLite.EF6.dll(可选,仅限托管的EF6程序集)
  • \ x86 \ SQLite.Interop.dll(必需,x86本机互操作程序集)
  • \ x64 \ SQLite.Interop.dll(必需,x64本机互操作程序集)

上面的字符串“”表示在目标计算机上部署应用程序二进制文件的目录。启用本机库预加载功能并显示上面显示的应用程序部署后,System.Data.SQLite仅托管程序集将尝试自动检测当前进程的处理器体系结构并预加载相应的本机库。