6

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

4

1 に答える 1

4

SQLCE 4.0アプリケーションのプライベート展開(つまり、アプリケーションフォルダーにライブラリを含める)を実行すると、同じエラーメッセージが表示されました。

プロジェクトへの参照を追加するときに、ドキュメントに従ってx64およびx86フォルダー(および関連するdll)を追加しました。

この時点で、エラーが発生しました:

Unable to load the native components of SQL Server Compact corresponding to the ADO.NET provider of version 8876. Install the correct version of SQL Server Compact. Refer to KB article 974247 for more details.

私たちの環境では、amd64フォルダーが次の場所にあることがわかりました。

%Program Files%\ Microsoft SQL Server Compact Edition \ v4.0 \ Private

も必要でした。

プロジェクトに追加し、含まれているdllを参照した後、問題は解決しました。

于 2013-02-01T10:47:05.737 に答える