【问题标题】:End user machine Cannot find System.Data.SQLite最终用户计算机找不到 System.Data.SQLite
【发布时间】:2012-12-20 18:33:12
【问题描述】:

Linqpad v4.26

这个过程在我的 Dev box 上效果很好。我手动复制到最终用户安装文件夹 linqpad.exe、linqpad.exe.config、custom.dll、system.data.sqlite.dll 和 system.data.sqlite.linq.dll。

我创建一个连接,单击单选按钮使用类型化数据上下文形成您自己的程序集。选择实体框架,选择下一步,浏览到我的自定义 dll。选择提供者单选按钮到其他。 System.Data.SQLite 不在下拉列表中。

我在我的 Dev box 上运行了 sqlite setup-bundle 安装程序,以便在 GAC 中安装 sqlite 以支持 VS2010 设计器。

谢谢,

约翰

【问题讨论】:

    标签: linqpad system.data.sqlite


    【解决方案1】:

    显示数据库提供程序的下拉列表填充有System.Data.Common.DbProviderFactories.GetFactoryClasses()。如果 SQLite 未列出,则它尚未在 machine.config 中注册。但是,LINQPad 不会阻止您手动输入提供程序的名称,就像您在构建实体框架连接字符串时所做的那样。

    【讨论】:

    • 这必须解释为什么我还必须把它放在我的 app.config 类中:
    • spoke too soon...when I add the above to the linqpad.exe.config file I see System.Data.SQLite in the dropdown but when select the Test button linqpad says I have a valid connection内部异常为无法在配置中找到指定的商店提供程序,或无效。
    • 尝试将其添加到名为 linqpad.config 的文件中 - 这是您查询的配置,而不是 LINQPad 本身。
    • 我得到异常已被调用的目标抛出。然后我删除了当前目录中的 System.dat.sqlite.dll 文件并重新运行 sqlite 安装程序。我验证了 部分,注意它具有 PublicKeyToken 属性。我在 linqpad.config 文件中尝试了带和不带 的 Linqpad。每次我弹出 Failed to find or load the registered .NET Framework data provider。我将使用“setup-bundle”副刚刚安装重试 SQLite 安装。该捆绑包包括 VS2010 设计时支持,仅适用于开发人员
    • 顺便说一句,在我的 Windows 7 x64 开发盒上,Linqpad 会在一小段延迟后自动为我嗅出连接字符串。在客户 XP 机器上它从不显示它,我认为是由于上述任何问题。
    【解决方案2】:

    +1,因为即使我可以在下拉菜单中看到它,它似乎也无效。

    我现在做了以下无济于事:

    1. 在客户端机器上运行 sqlite-netFx40-Setup-x86-2010-1.0.82.0.exe。
    2. 从 readme.htm 部分复制/粘贴到 Linqpad.exe.config 文件中。
    3. 将 System.Data.SQLite.dll 从 Program Files\System.data.sqlite 复制到我安装 Linqpad 的应用程序目录。
    4. 启动 linqpad 选择了我的自定义提供程序。它显示了所有表,但只要我尝试运行任何查询,就会出现异常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-19
      • 2018-12-28
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多