SQL ServerCE4.0データベースを使用する小さなWindowsフォームアプリを展開しようとしています。このアプリケーションを実行しているすべてのシステムでSQLServerCE 4.0をインストールする必要はないので、必要なDLLをアプリケーションに含めようとしています。
参照リストを確認すると、SQL ServerCE4.0の唯一の参照はですSystem.Data.SqlServerCe
。そのためのDLLを含めるSystem.Data.SqlServerCe.dll
と、データベースに接続しようとすると、次のエラーが発生します。
バージョン8876のADO.NETプロバイダーに対応するSQLServerCompactのネイティブコンポーネントを読み込めません。正しいバージョンのSQLServerCompactをインストールしてください。詳細については、KB記事974247を参照してください。
SQL Server CEのさまざまなバージョンでこれについて説明している記事をいくつか見ましたが、私が知る限り、他のバージョンのDLLがリストされていました。アプリが実行されるシステムには、違いが生じる場合は、少なくとも.NET4.0がインストールされたWindows7がすべてインストールされている必要があります。
リンクに示されているように、ここにある手順でファイルを追加してみました:http: //erikej.blogspot.com/2011/02/using-sql-server-compact-40-with.html
これらのファイルがビルドに含まれていると、プログラムはエラーなしでコンパイルされますが、セカンダリシステムで実行すると、GUIは表示されません(パブリックForm1()の一部にはSQL CEデータベースからデータを取得するメソッドが含まれます)。数秒後に閉じます。イベントビューアに次のエラーが表示されます。
障害のあるアプリケーション名:Dispatch Review Assistant.exe、バージョン:1.0.0.0、タイムスタンプ:0x50915d3c障害のあるモジュール名:KERNELBASE.dll、バージョン:6.1.7601.17932、タイムスタンプ:0x503285c2例外コード:0xe0434352障害オフセット:0x000000000000caed障害のあるプロセスID: 0x1028障害のあるアプリケーションの開始時刻:0x01cdb78c10761c73障害のあるアプリケーションパス:C:\ Users \ deLucain \ Desktop \ Release \ Dispatch Review Assistant.exe障害のあるモジュールパス:C:\ Windows \ system32 \ KERNELBASE.dllレポートID:4e4f45e3-237f-11e2- bd76-14dae92102de