|
分類:[インストーラ全般]
お世話になっております。
Visual Studio2017においてC#でSetup projectを使ってインストーラを作成しております。 またまた問題が出てきましたので、ご相談させていただきます。
アンインストール時にカスタム動作を入れたいため、System.Configuration.Install.Installer クラスを継承したクラスを作成し、アンインストール時に、確認ダイアログを表示しようと 思いました。
確認ダイアログで「はい」が選択された場合、アンインストール実行し、 「いいえ」が選択された場合はロールバックさせたいと思い、以下のような コードを入れてみました。
public override void Uninstall(System.Collections.IDictionary savedState) { DialogResult result = MessageBox.Show("アンインストールしますか?", "確認", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
if (result == DialogResult.Yes) { base.Uninstall(savedState); } else if (result == DialogResult.No) { base.Rollback(savedState); }
System.Windows.Forms.MessageBox.Show("Uninstall"); }
ところが「いいえ」選択時には、ロールバックされませんでした。 よくよく確認しますと、ここに来た時点ではすでにアンインストールが 終わってしまっているということに気づきました。 このような確認ダイアログを出したい場合、自作でアンインストール処理 を作成する以外、方法はありませんでしょうか。 すみませんが、ご教示ください。
|