VS2005で作成したVBアプリケーションを配布する際に、
SQLServer2005 Express Editionも配布しようと考えています。
その際、セットアッププロジェクトの必須コンポーネントに追加して配布すると、
既定のインスタンス(SQLEXPRESS)が入ってしまうので、
これを作成せず、必要な名前付きインスタンスだけインストールする方法はないでしょうか?
必須コンポーネントに追加せず、
セットアッププロジェクトの必須コンポーネントにした際にできた、
SqlExpressフォルダ内のsqlexpr32.exeへ引数で名前を渡す方法も試しました。
しかし、コマンドプロンブトでは
「sqlexpr32.exe /qb instancename="インスタンス名" ADDLOCAL=ALL」
で、無事実行できますが、
InstallクラスをオーバーライドしてVB.netのShellメソッドで実行すると、
SQLServerインストール中に、
「エラー1618」が発生し、
「別のインストールを完了してから、このインストールを実行してください」のエラーになります。
Installメソッド、Commitメソッドの両方で試してみましたがだめでした。
データファイルの位置が環境によって変わるのと、
配布媒体が書き込み不可なので、 template.iniを動的に作成することができません。
また、既に別のSQLServerがインストールされている可能性があるので、
既定のSQLEXPRESSインスタンスを今回のインストールの際にできたものか判断して
インストール後に削除する方法もできません。
どなたかよい方法をご存知ないでしょうか?
よろしくお願いします。