【问题标题】:Windows Mobile 6.1 + SQLite: Could not load type "System.Data.SQLite.SQLiteConnection"Windows Mobile 6.1 + SQLite:无法加载类型“System.Data.SQLite.SQLiteConnection”
【发布时间】:2015-02-12 20:23:51
【问题描述】:

我在使用 SQLite 库时遇到了麻烦。 我必须向一个遗留项目添加一些功能(因此我需要 SQLite DB)。

我已经尝试过https://system.data.sqlite.org/downloads/1.0.94.0/sqlite-netFx35-binary-PocketPC-ARM-2008-1.0.94.0.zip,但是当调试器尝试进入包含 SQLite 调用(SQLiteConnection、SQLiteCommand)的函数时,我会收到错误:

无法从程序集“System.Data.SQLite, Version=1.0.94.0, Culture=neutral, PublicKeyToken=1FDB50B1B62B4C84”加载类型“System.Data.SQLite.SQLiteConnection”。

文件 System.Data.SQLite.dll 以标准方式添加到引用中。

文件 SQLite.Interop.094.dll 被添加到项目的根目录并设置为 BuildAction: Content and Copy to output..: Copy if newer.

目标设备:Windows Mobile 6.1

Visual Studio 2005

目标平台:Windows Mobile 6 Professional SDK

感谢您的帮助...

【问题讨论】:

    标签: sqlite windows-mobile pocketpc


    【解决方案1】:

    乍一看还不错。所以你的应用程序路径中有两个 Sqlite-DLL?但是,您正在运行 Visual Studio 2005,所以我猜您只有 CompactFramework 2.5。紧凑框架 3.5 的版本可以使用 Sqlite 吗?如果是,请检查您的设备是否安装了CF3.5 (\Windows\cgautil.exe)

    【讨论】:

    • 其实我今天忘记了数据线,所以我想在模拟器(Windows Mobile 6 Professional VGA Emulator)上运行它,我找不到它上面安装了什么版本的CF .明天我会在设备上试用它(安装了CF3.5)并告诉你。谢谢你的好建议。
    • 您只需从您的\Windows\-目录启动“wceload.exe”。那里显示了您安装的紧凑框架版本。在 sqlite.org 他们告诉 CF3.5 是必需的,但我没有发现你是否必须将它与 CF3.5-Application 一起使用,或者你是否也可以将它与 CF2.5-Application 一起使用。
    • 要在设备上获取已安装 CF 的版本,您必须在设备上启动 \Windows\CGACUTIL.exe 而不是 wceload(是 cab 安装程序应用程序)。
    • 没错,没有像wceload.exe这样的文件,但是我找到了cgacutil.exe。在模拟器上,只有 .NET CF FW v 2.0.7045.0,但在我的设备上也有 3.5.7283.0。所以现在我能够了解使用 SQLite 类的方法。我以为模拟器上也安装了CF 3.5,但事实并非如此。
    • 哦该死的对不起,我把它弄混了。当然你是对的,它是 cgautil D'OH
    【解决方案2】:

    更新:版本 1.0.94 无法正常工作。我在 SQLiteConnection.Open() 上失败了(找不到方法……或缺少方法……)。

    请使用版本 1.0.66。解决方案在SQLite Interop DLL Missing Method - Windows Mobile CF

    【讨论】:

      猜你喜欢
      • 2018-03-06
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多