2017-01-03 489 views
0

非常に具体的なエラーメッセージですが、問題は見つかりません。要求されたNet Frameworkデータプロバイダが見つかりません

string provider = "Devart.Data.PostgreSql"; 
DbProviderFactory factory = DbProviderFactories.GetFactory(provider); 

しかし、それは私にこのエラー与えて、クラッシュ:私はしようとした

System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed. at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)

私はそのために、私は次の操作を行い、データベースと通信するために必要なWindowsサービスを持っていますDevart.Data.PostgreSql.dllをbinフォルダに移動しますが、結果は同じです。

その後、私は私のmachine.configをチェックし、私はこれを持っている:

<add name="dotConnect for PostgreSQL" 
    invariant="Devart.Data.PostgreSql" 
    description="Devart dotConnect for PostgreSQL" 
    type="Devart.Data.PostgreSql.PgSqlProviderFactory, Devart.Data.PostgreSql, Version=7.4.506.0, Culture=neutral, PublicKeyToken=09af7300eec23701" /> 

だから、右に見える、私は任意の空のタグが見つかりませんでした、それらのタグを削除すると言って、そのほかのSOの記事で見られます空の時に問題を解決することができましたが、私は何も持っていませんでした。

私は問題が何であるか分かりません。

私も同じネットバージョンを使用してコンソールプロジェクトを作成し、正確なコードを持つ:

string provider = "Devart.Data.PostgreSql"; 
DbProviderFactory factory = DbProviderFactories.GetFactory(provider); 

そして、それは動作します。誰でもそれが何であるかを知っていますか?

+0

エラーはどこで発生しますか?それはDbProviderFactoryファクトリ= DbProviderFactories.GetFactory(プロバイダ)の行ですか? – Woot

+0

はい。その行でエラーが発生します。 – alface

+0

あなたのプロジェクトへの参照としてDevart.Data.PostgreSql.dllを追加しましたか? – Woot

答えて

0

私はあなたの特定の問題に遭遇していませんが、DevArtライブラリを少し使用していますが、コードにライセンスファイルを追加する必要があります。

それはlicenses.licxと呼ばれ、次のようになりべきである:

Devart.Data.PostgreSql.PgSqlConnection, Devart.Data.PostgreSql 

は、埋め込まれたリソースとしてプロジェクトに追加します。あなたがそれを追加したら、「どこがなくなったの?」と思ってください。 :それはあなたがそれを追加した後であっても、あなたがすべて表示ボタンをクリックしない限り、あなたのソリューションエクスプローラに表示されません。

は、あなたの設定ファイルに以下の必要があります

<entityFramework> 
    <providers> 
     <provider invariantName="Devart.Data.PostgreSql" type="Devart.Data.PostgreSql.Entity.PgSqlEntityProviderServices,Devart.Data.PostgreSql.Entity.EF6, Version=7.6.743.0, Culture=neutral, PublicKeyToken=09af7300eec23701" /> 
    </providers> 
    </entityFramework> 

    <system.data> 
    <DbProviderFactories> 
     <remove invariant="Devart.Data.PostgreSql" /> 
     <add name="dotConnect for PostgreSQL" invariant="Devart.Data.PostgreSql" description="Devart dotConnect for PostgreSQL" type="Devart.Data.PostgreSql.PgSqlProviderFactory, Devart.Data.PostgreSql, Version=7.6.743.0, Culture=neutral, PublicKeyToken=09af7300eec23701" /> 
    </DbProviderFactories> 
    </system.data> 

あなたは右のあなたは、それはそれをチェックするように動作しません持っているのlibsのバージョン番号を取得しない場合。 Devart.Data.Postgresql.dllを右クリックし、Properties、Detailsを選択して正しいバージョン番号を取得します。

それでも動作しない場合は、DevArtの技術サポートにお問い合わせください。彼らはあなたのlibsの試用版だけを使っていても本当に役に立ちます。

HTH、

アダム。

+0

ほとんど忘れてしまった - あなたのプロジェクトであなたのdevartのlibsの "ローカルコピー"がtrueに設定されていることを確認してください。 –

関連する問題