C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■88483 / )  インストーラMicrosoft SetupProject_2
□投稿者/ ぽんすけ (23回)-(2018/09/03(Mon) 12:50:15)

分類:[インストーラ全般] 

お世話になっております。

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");
}


ところが「いいえ」選択時には、ロールバックされませんでした。
よくよく確認しますと、ここに来た時点ではすでにアンインストールが
終わってしまっているということに気づきました。
このような確認ダイアログを出したい場合、自作でアンインストール処理
を作成する以外、方法はありませんでしょうか。
すみませんが、ご教示ください。




返信 編集キー/


管理者用

- Child Tree -