2011-01-21 9 views
0

CompactEdictionデータベースファイルに接続しようとしているときに、クライアントアプリケーションでプロバイダが見つからないというエラーが表示されます。私はSQL Server 2008がインストールされていた私の開発マシン上でこのアプリケーションをテストしていた時、すべてがOKでした。CEデータベースへの接続に関する問題

.netがインストールされています(3.5および4.0)、sp3(windows xp)があります。私はそれを実行するために何が欠けているか知っていますか?プロバイダに問題があります...

アプリケーションカタログにコピーされたファイルがあります。

アプリの設定で
System.Data.SqlServerCe.dll 
System.Data.SqlServerCe.Entity.dll 
sqlceca35.dll 
sqlcecompact35.dll 
sqlceer35EN.dll 
sqlceme35.dll 
sqlceoledb35.dll 
sqlceqp35.dll 
sqlcese35.dll 

私はそのようなエントリを持っている:

<configuration> 
    <system.data> 
      <DbProviderFactories> 
       <remove invariant="System.Data.SqlServerCe.3.5"/> 
       <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral"/> 
      </DbProviderFactories> 
     </system.data> 

エラーは、次のとおりです。

error 0004: Could not load System.Data.SqlServerCe.Entity.dll. Reinstall SQL Server Compact 

サーバがインストールされてはならない、エラーメッセージがあるのAppConfigにエントリがない場合の要件

のthats:接続文字列のプロバイダで

The specified store provider cannot be found in the configuration, or is not valid. ---> System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed. 
    at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) 
    at System.Data.EntityClient.EntityConnection.GetFactory(String providerString) 

は次のとおりです。

provider=System.Data.SqlServerCe.3.5 
+0

先頭から開始するには、どのプロバイダが接続文字列にリストされていますか? –

+0

私はあなたのコメントに答えるために私の質問を編集しました:) – gruber

答えて

0

あなたがいますコピーする必要のあるSQL Compact用のDLLがそれ以上存在しないことを確認してください。

また、SQLコンパクトの新しいバージョンがあると思います。おそらく、そのバージョンにアップグレードするのに役立ちます。これは、ロングショットですが、あなたが知っていることは決してないだろう;)

EDIT:このサイトで ルック:http://msdn.microsoft.com/en-us/library/aa983326.aspxそれは7つのdllファイルを上書きコピーしていると述べています。

+1

私はSystem.Data.SqlServerCe.Entity.dllを持っている必要がありますエンティティframeowrkを使用して:) – gruber

関連する問題