Sie haben für das benutzerdefinierte Aktionen zu verwenden:
- eine neue Bibliothek hinzufügen („CustomActions-“), um das Setup-Projekt
- Add => = neues Element> Installer Klasse
- wechseln Sie zu Codeansicht und überschreiben Sie die Uninstall-Methode
Code:
public override void Uninstall(IDictionary savedState)
{
base.Uninstall(savedState);
// Delete folder here.
}
Wenn Sie nicht über Ihre eigene DeleteFolder Methode schreiben einen Verweis auf Microsoft.VisualBasic hinzufügen:
Microsoft.VisualBasic.FileIO.FileSystem.DeleteDirectory("C:\\MyFiles", Microsoft.VisualBasic.FileIO.DeleteDirectoryOption.DeleteAllContents);
- Fügen Sie den Projektausgang (Primary Output) des CustomActions- Projekt auf das Setup-Projekt .
- Rechts Ihr Setup-Projekt klicken und klicken Sie auf Ansicht => Benutzerdefinierte Aktionen
- Rechts klicken uninstall => Benutzerdefinierte Aktion hinzufügen => Anwendungsordner => Primäre Ausgabe von CustomActions-
Hinweis: Ein gutes Beispiel hierfür ist befindet sich here. Sie erklären dieses Beispiel genauer. Etwas, das in dieser Antwort zunächst nicht offensichtlich war, war die Tatsache, dass Sie die Installer-Klassenvorlage innerhalb des APPLICATIONS-Projekts hinzufügen mussten, NICHT das SETUP-Projekt der Anwendung. Grundsätzlich ruft das Setup-Projekt die Procs Install() und Uninstall() von jeder Anwendung auf, die den benutzerdefinierten Aktionen im Setup-Projekt hinzugefügt wurde. Die Idee ist, diese beiden Procs zu überschreiben, um Code zu injizieren, um Ihre Gebote zu erfüllen ...
Ist es möglich, das ursprüngliche Installationsverzeichnis von der SavedState [] Sammlung zu bekommen? Ich möchte keinen Pfad in meine App fest codieren, sondern möchte stattdessen versuchen, das ursprüngliche Installationsverzeichnis zu löschen. Der Versuch, das aktuelle Verzeichnis zu überprüfen, endet im Verzeichnis "C: \ Windows \ SysWOW64". : / –