0

現在、VS 2010 (2008 からアップグレード) セットアップ プロジェクトを使用してアプリケーションをインストールし、SQL Server 2008 インストールの前提条件を利用しています。

管理者は、アプリケーションによってインストールされたすべてのもの (前提条件を含むが、.net を除く) をアンインストーラーによってアンインストールする必要があることを頭に入れています。

そのため、インストーラーを変更して SQL Server Express 2008 をアンインストールしようとしています。

SQL Server の package.xml 依存関係を変更して、適切なインストール条件をトリガーし、アンインストール引数を渡すことができると最初に考えましたが、それらの条件がどうなるかについて途方に暮れています。

次に、カスタム インストール アクションを使用して、System.Diagnostics.Processアンインストール コマンド フラグを使用して SQL Express インストーラーをプログラムで呼び出すことを考えましたが、インストーラーがその実行可能ファイルをアンインストール用にアクセスできるようにすることを保証できるかどうかはわかりません。

何か案は?

4

1 に答える 1

0

ええと、SQLServerExpressをアンインストールするのは悪いことです。これに依存する別のアプリケーションが後で追加された場合はどうなりますか?アンインストーラーはそのアプリケーションを壊します。

ただし、管理は正しいです。最初にインストールしたものをすべてアンインストールする必要があります。

では、解決策は何ですか?彼らが言うように、「あなたがそうするなら、あなたがそうしないなら、くそったれ」。

幸い、これがデスクトップアプリケーションの場合、答えは簡単です 。SqlServerExpressEditionを使用しないでください。Express Editionは、実際にはサーバークラスのエンジンです。Sql Server Compact Editionは、このシナリオにはるかに適しており、展開の問題を解決します。

これがサーバーアプリケーションの場合は、少し注意が必要です。正常に動作するインストーラーは、SQLServerExpressの独自のインスタンスを作成します。次に、インスタンスのみをアンインストールすることを確認する必要があります(また、インストールが正常に動作していることも確認してください)。これは実際には問題を解決しませんが、少なくとも、アンインストーラーの実行後に何かが壊れた場合、それは彼らのバグであり、あなたのバグではないと言うことができます。残念ながら、このパーツは手動で作成する必要があります。

于 2010-07-06T18:49:31.667 に答える