Ich habe OnBeforeUninstall
übersteuert, um zu verhindern, dass das Setup-Projekt meiner Anwendung es unter bestimmten Umständen deinstalliert, aber es scheint, dass es gerade nicht aufgerufen wird und keine Wirkung hat.Verhindern der Deinstallation im Setup-Projekt mit OnBeforeUninstall
protected override void OnBeforeUninstall(IDictionary savedState)
{
if (ApplicationIsBusy())
throw new ApplicationException("Prevent uninstall while application busy.");
}
Ich bin in der Lage Deinstallation abbrechen, indem Sie die Uninstall
Methode überschrieben, aber dann hat sich das Setup-Projekt bereits geschlossen meiner Anwendung. Wie kann ich einen Deinstallationsversuch "fehlschlagen", wenn meine Anwendung beschäftigt ist vor das Setup-Projekt versucht, es zu schließen, wenn es ausgeführt wird und unterbricht meinen Arbeitsprozess?
Versuchen Sie eine Trace-Nachricht in dort zu schreiben: http://msdn.microsoft.com/en-us/library/system.diagnostics.trace.writeline.aspx nur um zu überprüfen, ob die Methode aufgerufen wird oder nicht. Sie können die Ablaufverfolgungsmeldungen mit debugView überprüfen http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx –
Auch von MSDN: "Wenn Sie OnBeforeUninstall in einer abgeleiteten Klasse überschreiben, müssen Sie unbedingt die OnBeforeUninstall-Methode der Basisklasse aufrufen damit registrierte Teilnehmer die Veranstaltung erhalten. " –