VS2015でソフトウェア用のmsiプロジェクトを作成しました。私はa.Netベースのデスクトップアプリケーションを作った。私の要件は、私は2例を処理したいということです: -msiファイルに新しいバージョンをインストールする際に自動的にアンインストールする方法
の1-私たちのソフトウェアがすでにインストールされ、ユーザーはそれをインストールしようとした場合、それは自動的に既存のソフトウェアをアンインストールして、私が作成したデータベースファイルを(削除する必要があります応用)。
2-インストールされているバージョンが低い場合、アプリケーションをアンインストールしてデータベースファイルをそのまま残してください。私はインストールして、私は私のdllファイルのパスを指定したとtrueにインストーラクラスのプロパティを設定しているところアンインストール用のカスタムアクションを追加した私のセットアッププロジェクトで今すぐ
。このDLLには、私はSystem.Configuration.Install.Installerから継承したクラスを作り、インストール取り扱いしている、beforeInstallは、以下のようにアンインストールします -
public partial class SetupManager : System.Configuration.Install.Installer
{
public SetupManager()
{
InitializeComponent();
this.BeforeInstall += SetupManager_BeforeInstall;
//this.Committed += new InstallEventHandler(DarkMailInstaller_Committed);
}
private void SetupManager_BeforeInstall(object sender, InstallEventArgs e)
{
MessageBox.Show("In Install event");
}
}
さて、アンインストール中に、私はDBを削除します。コントロールパネルからアンインストールするとうまくいき、DBファイルも削除されます。
しかし、オーバーライド機能を使用する前に、製品をアップグレードしたい場合は、インストールまたはBeforeInstallのようにエラーが表示されます。「この製品の別のバージョンが既にインストールされています。既存のバージョンの製品、コントロールパネルの追加/削除プログラムを使用します。
は、今私は、インターネット上で検索しましたし、私が私のパッケージコードまたは製品バージョンを更新する場合、その上にインストールすることができる必要がありそうです。今、私は問題以下している: - VS 2015で
1-、私は、製品のバージョンまたはパッケージコードを設定することができ、セットアッププロジェクトでの任意のプロパティを持っていけませんか?
2 - 私はオルカを使用してそれを編集しようとしていますが、私は(更新されたバージョン番号、パッケージのコードと製品コード付き)編集したMSIファイルをインストールしようとした場合でも、その後、私は同じエラーに直面しています。
3-私はなぜこのエラーがBefore-installイベントを実行する前に来るのか分かりませんか?
4-この場合、「RemoveExistingProducts」が役立つことがわかりました。しかし、私はVS2015でこのプロパティ/アクションを見つけることができません。どこで見つけることができますか ?
この問題を解決するのに手伝ってもらえますか? Visual Studioのセットアッププロジェクトで
お返事ありがとうございます。わたしにはできる。私は十分な資格を持っていないが、間違いなくそれは私にとって+1です。 – bulunga