Während der Deinstallation des Visual Studio-Integrationspakets, das ich schreibe, muss "devenv.exe/setup" ausgeführt werden, um die VS-Benutzeroberfläche zu aktualisieren und die Paketinformationen aus dem Begrüßungsbildschirm zu entfernen.Wie führe ich eine benutzerdefinierte Aktion aus, nachdem Dateien während der MSI-Deinstallation gelöscht wurden?
Es muss jedoch ausgeführt werden, nachdem alle Add-In und Paketdateien gelöscht wurden. Meine aktuelle Konfiguration (mit einer benutzerdefinierten Aktion der Installer-Klasse, die während des Deinstallationsschritts aufgerufen wurde) bewirkt, dass devenv.exe zu früh ausgeführt wird, bevor die Dateien tatsächlich gelöscht wurden. Dies bedeutet, dass die Begrüßungsbildschirminformationen nicht aktualisiert werden.
Irgendwelche Ideen? Ich brauche nur devenv am Ende der Installation zu laufen, irgendwie - ich bin nicht an benutzerdefinierte Aktionen gebunden.
Ja, Sie sollten die benutzerdefinierte Aktion verzögert und wahrscheinlich direkt vor InstallFinalize hinzufügen - wodurch die Installations-Transaktion beendet wird, die bei InstallInitialize gestartet wurde. Systemänderungen sollten nur in dieser Transaktion durchgeführt werden, um eine ordnungsgemäße Systemwiederherstellung zu ermöglichen, wenn ein Fehler auftritt. Stellen Sie sicher, dass Ihre benutzerdefinierte Aktion tatsächlich einen genauen Rückgabecode meldet, um den Erfolg oder Fehler anzuzeigen. Dadurch wird das Setup-Rollback ausgeführt, wenn dies erforderlich ist, oder Sie müssen abschließen, wenn alles in Ordnung ist. Fügen Sie keine benutzerdefinierten Aktionen hinzu, die nach InstallFinalize Änderungen am System vornehmen. Sie könnten dazu führen, dass die Deinstallation des MSI fehlschlägt. –