酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

SQL Server Compact 3.5がインストールされていなくても、SQL Server Compact 3.5を使う方法

「System.Data.SqlServerCe」を参照すれば使える様になる「SQL Server Compact 3.5」ですが、端末メーカーによってはあらかじめインストールされていない端末があるようです。

ひょっとしたらインストールされていないのが通常で、Visual Studioをインストールした状態で、端末を接続すると勝手にインストールされるのかもしれないですが。個人で使ってる端末は全てSQL Server Compactがインストールされていました。

SQL Server Compact 3.5がインストールされていない端末でも使える様にしないといけないWindows Mobile向けアプリケーションで、SQL Server Compact 3.5を使う方法を考えてみました。

必要なファイルをxcopyで持ってくる

既にSQL Server Compact 3.5をインストール済みの端末から必要なファイルを取り出します。標準状態であれば恐らく以下のフォルダに格納されています。

\Program Files\Microsoft SQL Server Compact Edition\v3.5

以下のファイルをコピーして、セットアップファイルに含めてやることで、SQL Server Compact 3.5をインストールしていなくても使用する事が出来ます。

  • sqlceca35.dll
  • sqlcecompact35.dll
  • sqlceer35EN.dll
  • sqlceme35.dll
  • sqlceoledb35.dll
  • sqlceqp35.dll
  • sqlcese35.dll
ネタ元

この方法は以下のページで紹介されています。

http://msdn.microsoft.com/ja-jp/library/aa983326.aspx

デスクトップ版のSQL Server Compact 3.5のお話だと思うのですが、マネージコードのアセンブリのお話なので割りとMobileと共通かもしれませんね。

CE Setup DLLを作る

CE Setup DLLを作ると、インストール時、アンインストール時にカスタム動作をさせる事が出来ます。これを利用して、インストール時にSQL Server Compact 3.5のインストーラをキックする事が出来る様です。

ただ、インストーラーの2重起動させるのには抵抗があるので調べてません。。。詳しいお話を知っている方がいれば嬉しいのですが。