SQL Server CE データベース内のデータにアクセスする wpf アプリケーションがあります。アプリケーションとデータベースは、インストールせずに PC 上で実行することを意図していますが、実行しようとすると失敗します。(db プロバイダーが見つからない) 次の手順を実行しました。
System.Data.SqlServerCE
-> ローカルにコピー- 7 つの SQL Server CE アセンブリをアプリケーション ディレクトリにコピーしました
- VC++ がシステムで利用可能であることを確認しました
に続いて追加
app.config
<system.data> <DbProviderFactories> <remove invariant="System.Data.SqlServerCe.4.0" /> <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> </DbProviderFactories> </system.data>
次のコードの実行を試みた場合:
try
{
MessageBox.Show("initialize db connection");
context = new DataAccess.PersistentStorageEntities();
MessageBox.Show(context.Database.Connection.ConnectionString);
}
catch (Exception ex)
{
MessageBox.Show("exception: "+ex.Message);
if (ex.InnerException != null)
{
MessageBox.Show("innerexception: "+ ex.InnerException.Message);
}
}
メッセージが表示されます:
例外: は有効な Win32 アプリケーションではありません。(HRESULT からの例外: 0x800700C1)
のロードに問題System.Data.SqlServerCe.4.0
があると思われますが、Win32 としてロードしようとする理由がわかりません。
何かご意見は?ここで気が狂いそうな気がする