SQL Compact を使用したデスクトップ アプリケーションで Entity Framework 4 を使用しています。アプリケーションで SQL Compact のプライベート インストールを使用して、インストーラーがユーザーに 2 回目のインストールを行わずに SQL Compact をインストールできるようにしたいと考えています。また、今後のバージョン管理の手間も省けます。
私の開発マシンには SQL Compact 3.5 SP1 がパブリック インストールとしてインストールされているため、期待どおりにアプリが正常に動作します。しかし、SQL Compact がインストールされていないテスト マシンでは実行されません。次のエラーが表示されます。
The specified store provider cannot be found in the configuration, or is not valid.
一部の人々が SQL Compact のプライベート インストールに問題を抱えていることは知っていますが、私はそれらをしばらく使用しており、非常に気に入っています。残念ながら、私の通常のプライベート インストール アプローチはうまくいきません。SQL CE ファイルのバージョン番号を確認したところ、すべて 3.8.8078.0 で、これは SP2 RC バージョンです。
プライベート インストールに含めたファイルは次のとおりです。
- sqlcecompact35.dll
- sqlceer35EN.dll
- sqlceme35.dll
- sqlceqp35.dll
- sqlcese35.dll
- System.Data.SqlServerCe.dll
- System.Data.SqlServerCe.Entity.dll
System.Data.SqlServerCe への参照をプロジェクトに追加し、上記のすべてのファイルがインストール コンピューターのアプリケーション フォルダーにコピーされていることを確認しました。
SQL Compact ファイルを開くときに EntityConnectionStringBuilder を構成するために使用するコードを次に示します。
var sqlCompactConnectionString = string.Format("Data Source={0}", filePath);
// Set Builder properties
builder.Metadata = string.Format("res://*/{0}.csdl|res://*/{0}.ssdl|res://*/{0}.msl", edmName);
builder.Provider = "System.Data.SqlServerCe.3.5";
builder.ProviderConnectionString = sqlCompactConnectionString;
var edmConnectionString = builder.ToString();
ファイルがありませんか?SQL Compact DLL の場所を Entity Framework に伝えるために必要な構成手順がありませんか? インストール マシンで EF が SQL Compact DLL を見つけられないその他の提案はありますか? ご協力いただきありがとうございます。