特定の状況下でアプリケーションのセットアッププロジェクトをアンインストールできないようにするには、をオーバーロードしますが、OnBeforeUninstallを使用してセットアッププロジェクトのアンインストールを防止する
protected override void OnBeforeUninstall(IDictionary savedState)
{
if (ApplicationIsBusy())
throw new ApplicationException("Prevent uninstall while application busy.");
}
私はUninstall
メソッドをオーバーライドして、アンインストールをキャンセルすることができていますが、その後でセットアッププロジェクトは、すでに自分のアプリケーションを閉じました。アプリケーションがビジー状態のときアンインストールを "失敗"するにはの前に、セットアッププロジェクトが実行中に終了してワーカープロセスを中断させようとしていますか?
トレースのメッセージをhttp://msdn.microsoft.com/en-us/library/system.diagnostics.trace.writeline.aspxに書き込んで、メソッドが呼び出されたかどうかを確認してください。デバッグビューでトレースメッセージを確認することができます。http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx –
MSDNから: "派生クラスでOnBeforeUninstallをオーバーライドする場合は、必ずベースクラスのOnBeforeUninstallメソッドを呼び出してください登録された代理人がイベントを受け取るようにします。 –