none
VS2005でSQLServerを配布する際に、インスタンスを作成できませんか? RRS feed

  • 質問

  • 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インスタンスを今回のインストールの際にできたものか判断して
    インストール後に削除する方法もできません。

    どなたかよい方法をご存知ないでしょうか?
    よろしくお願いします。
    2007年3月15日 17:48