0

過去 4、5 時間、SQL Server CE を Visual Studio 2005 で動作させようとしてきました。しかし運がない。アプリケーションを実行すると、次のエラーが表示されます。

PInvoke DLL 'sqlceme35.dll' が見つかりません

数え切れないほどのスレッドや記事を読みましたが、機能させることができません。次のツールを使用します。

  • Intel Bulverde プロセッサを実行する Windows CE 5.0 デバイス
  • Windows XP 32 ビットと Visual Studio 2005
  • SQL Server コンパクト 3.5

これが私がしたことです。

  1. 新しい「スマート デバイス」プロジェクトを作成し、「Windows CE 5.0」を選択
  2. 一連のフォルダーとファイルをインストールするSQL Server Compact 3.5(Windows XP上)をインストールしました
  3. 私のプロジェクトでは、SQL Server Compact 3.5 がインストールされているフォルダー内にある「System.Data.SqlServerCe.dll」への参照を追加しました。
  4. 次に、http://msdn.microsoft.com/en-us/library/aa226134( v=sql.80 ).aspxからコピーした以下のような数行のコードを書きました。

        SqlCeEngine engine = new SqlCeEngine("Data Source = Test.sdf");
        engine.CreateDatabase();
    
        conn = new SqlCeConnection("Data Source = Test.sdf");
        conn.Open();
    
  5. 次に、「wce500\x86」から「sqlce.dev.ENU.wce5.x86.CAB」、「sqlce.repl.wce5.x86.CAB」、および「sqlce.wce5.x86.CAB」をターゲットデバイスにインストールし、フォルダ「Microsoft SQL Server Compact Edition」内のDLLファイルの束

  6. 次に、プログラムを実行しましたが、上記のエラーが発生しました。エラーは、行SqlCeEngine engine = new SqlCeEngine("Data Source = Test.sdf");によってスローされています。
  7. 「Microsoft SQL Server Compact Edition」フォルダからすべての DLL を、プログラムが実行されているターゲット デバイスのアプリケーション フォルダにコピーする必要があるのではないかと考えたので、すべてのファイルをコピーしましたが、それでも同じエラーが発生しました。
  8. そして、「x86」の代わりに「armv4i」を使用する必要があるのではないかと考えたので、最初に「sqlce.wce5.armv4i.CAB」、「sqlce.repl.wce5.armv4i.CAB」、「sqlce.dev.ENU」をインストールしました.wce5.armv4i.CAB」であり、期待どおりに機能しませんでした。そのため、すべてのDLLをプログラムフォルダーに再度コピーしましたが、うまくいきませんでした。

私は何を間違っていますか?

4

1 に答える 1

0

Bulverde (IIRC) は PXA27x シリーズのプロセッサであり、x86 ではなく ARM コアであるため、ARM バイナリを使用する必要があります。

工場出荷時の状態にリセットされたデバイスがあることを確認することから始めます (レジストリは、リセットする重要な部分です)。

次に、このフォルダーから CAB (またはバイナリのみを直接) を使用します。

%PROGRAM_FILES%\Microsoft SQL Server Compact Edition\v3.5\Devices\wce500\armv4i

System.Data.SqlServerCe.dllアセンブリがデバイス上 (通常はアプリケーション フォルダー内) にあることを確認します。

それでも失敗する場合は、依存関係が不足している可能性があります。depends.exe (デスクトップ上) を SQL Compact バイナリに対して実行して、必要なものを確認し、それらがターゲット上にあることを確認します。

于 2012-12-06T14:26:42.270 に答える