2012-04-20 27 views
3

Win CE(コンパクトフラッシュカード)のハードディスクに貼り付けたアプリケーションを作成しました。私の問題は、アプリケーションがSQL Server CE 3.5データベースを使用していることですが、SQL Server CE 3.0でイメージが作成されたように見えます。イメージを構築するときに3.5バージョンを選択できませんでした。Windows CE 6.0 - ランタイムイメージにSQL Server CE 3.5をインストールする

3.5バージョンのDLLは、アプリケーションをデバッグするたびにデプロイされ、問題が開発段階に現れることはありません。

アプリケーションが起動すると(OSの起動時に自動的に起動されます)、例外を含むメッセージウィンドウがポップアップし、アプリケーションを起動させません。私の質問は、イメージにSQL Server CE 3.5をインストールする方法、またはCABファイルを使用してインストールする方法、または起動時に毎回です。

実行中のOSシステムで正しいCABファイル(3つのCAB)を実行すると3.5バージョンがインストールされ、アプリケーションが起動しますが、OSを再起動すると変更内容は保存されずコミットされません。イメージをビルドする前にカタログに3.5バージョンを追加するか、最初の起動後に一度だけ永続的にインストールするためのすべての起動時間または最後のオプションにインストールするためのソリューションが必要です。

システムを起動するたびにCABをインストールするソリューションを提供できるのであれば、私にとってはうまくいくが、システム上でSQL Server CE 3.5データベースを使用するアプリケーションを実行する必要があることを考慮する必要があるアプリケーションの自動起動に先立ってCABのインストールを開始する必要があります。

ありがとうございます。

答えて

1

あなたはいくつかの選択肢があります。スタートアップ時にCABを実行するのが最も望ましい方法です。

できるかぎり最新のSQLCEバイナリをOSに入れることです。更新されたQFEがすべてにインストールされている場合、カタログ番号にあります。何らかの理由でQFEをインストールできない場合は、Platfrom Builderが引き出す元のバイナリを常に%WINCEROOT%\OTHERS\SQLCOMPACTに置き換えることができます。

もう1つの方法は、アプリケーションデプロイメントにすべてのSQLCEバイナリを含めることです。 CABは必要ありません。DLLをアプリケーションフォルダに置くだけです(ネイティブDLLの衝突を防ぐためにこのルートを使用する場合は、OSからSQLCEを削除することをお勧めします)。これらのバイナリのソースは%PROGRAM_FILES%\Microsoft SQL Server Compact Edition\v3.5\Devicesです。これは、実際に私が好むルートです.SQLCEのアップデートでは新しいOSは必要ありません。

+0

私は、アプリケーションデプロイメントにバイナリを配置する最適なソリューションに同意します。私はそれを試みますが、OTHERS \ SQLCOMPACTを調べると正しいバイナリが見つかりましたが、私の開発したイメージではSQLCEバージョン3.0です。実行中のWinCEイメージにCABをインストールするとアプリケーションが動作しますが、再起動後にすべてが失われます。あなたの解決策を試してみましょう。最後に、私のために働いた解決策をここに入れます。ありがとう。 – Patrik

+0

@Patrikあなたの最終的な解決策は何でしたか? –

+0

私は2つの方法で私の問題を解決しました。 1.永続的なストレージとレジストリの保存機能を有効にして、イメージ上でCABを実行する。私はCFカードのいくつかのコピーを作った。 2.解決策は、永続ストレージに保存された実行可能ファイルとともにSQLCEのDLLを配置することでした。 – Patrik

関連する問題