「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重起動させるのには抵抗があるので調べてません。。。詳しいお話を知っている方がいれば嬉しいのですが。