web-dev-qa-db-ja.com

要求された.Net Frameworkデータプロバイダーが見つかりません-SQLite

Sqliteは単純だと思っていましたが、それは私に苦労しています。 ado.netエンティティデータクラスを使用してsqliteデータベースに接続できるアプリケーションを作成したいだけです。

Windows XPを実行している仮想コンピュータでアプリケーションをテストするときに、この問題が発生します。アプリケーションは、現在のコンピューターと、ラップトップで展開すると正常に動作します。

これが仮想コンピュータで何が起こるかです:

  • アプリケーションを起動できます。
  • アプリケーションはSystem.Data.SQLiteを使用してデータベースと対話できます
  • アプリケーションは、ADO.NETエンティティデータモデルを使用してデータベースに接続できません

接続しようとすると、次の例外が発生します。

enter image description here

enter image description here

私はこれについて話す多くの投稿があることを知っています、そしてそれらのほとんどはあなたが 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>

私のapp.configファイルに。

問題は、データを選択したり、データベースにレコードを挿入したりできないことです。新しいレコードを挿入しようとすると、次の例外が発生します。

タイプ「System.Data.SQLite.SQLiteFactory」のストアプロバイダーインスタンスで「GetService」メソッドを呼び出した後、nullが返されました。ストアプロバイダーが正しく機能していない可能性があります。

enter image description here

21
Tono Nam

追加する必要がありました:

 <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>

私のアプリの設定ファイルに。そして今それは次のようになります:

<?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>

Sqliteがインストールされている場所にコピーする必要がありました

enter image description here

プログラムexeが配置されている出力ディレクトリに

33
Tono Nam