无法找到请求的.Net Framework数据提供程序 - SQLite

Ton*_*Nam 21 c# sqlite deployment ado.net

我认为sqlite很简单,但它让我很难过.我只想创建一个应用程序,我可以使用ado.net实体数据类连接到sqlite数据库.

我在运行Windows XP的虚拟计算机上测试应用程序时遇到此问题.当我部署它们时,应用程序在我当前的计算机上以及在我的笔记本电脑上运行正常

以下是虚拟计算机上发生的情况:

  • 该应用程序能够启动.
  • 应用程序能够使用System.Data.SQLite与数据库进行交互
  • 应用程序无法使用ADO.NET Entity数据模型连接到数据库

当我尝试连接时,我得到以下异常:

在此输入图像描述

在此输入图像描述

我知道有很多帖子都在谈论这个,大多数人说你需要为Sqlite下载.NET提供程序.

我已经安装了sqlite-netFx40-setup-bundle-x86-2010-1.0.79.0.exe,我遇到了同样的问题.我该怎么办?


编辑

我设法通过添加以下内容来建立连接:

<system.data>
 <DbProviderFactories>
  <remove invariant="System.Data.SQLite"/>
  <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
  type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
Run Code Online (Sandbox Code Playgroud)

到我的app.config文件.

问题是现在我无法选择数据也不能将记录插入数据库.我尝试插入新记录时遇到的例外情况是:

在类型为"System.Data.SQLite.SQLiteFactory"的商店提供程序实例上调用"GetService"方法后返回null.商店提供商可能无法正常运行.

在此输入图像描述

Ton*_*Nam 33

不得不补充:

 <system.data>
    <DbProviderFactories>
     <remove invariant="System.Data.SQLite"/>
      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data   Provider for SQLite"
      type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
     </DbProviderFactories>
  </system.data>
Run Code Online (Sandbox Code Playgroud)

到我的应用配置文件.它现在看起来像:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0.30319" sku=".NETFramework,Version=v4.0,Profile=Client" />
  </startup>
  <system.data>
     <DbProviderFactories>
        <remove invariant="System.Data.SQLite"/>
        <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
   type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
      </DbProviderFactories>
    </system.data>
</configuration>
Run Code Online (Sandbox Code Playgroud)

在安装sqlite的位置,我不得不复制

在此输入图像描述

到我的程序exe所在的输出目录