2008-10-13 3 views
6

Ich erstelle ein Visual Studio-Setup-Projekt. Ich möchte eine andere Komponente vom System aus der Installation meiner Komponente entfernen. Die andere Komponente wird von meinem eigenen Setup installiert, das mit Visual Studio erstellt wird.VS-Setup-Projekt: Andere Komponente bei der Installation deinstallieren

Derzeit, wenn ich die Deinstallation der anderen Komponente von der Installationsaktion der Komponente aufrufen, erhalte ich den Fehlercode: 1618 (another MSI already running).

Kann mir jemand einen alternativen Weg vorschlagen, um dieses Problem zu lösen?

+5

Wenn Sie eine Antwort brauchen, gebe ich eine Prämie aus ...? –

Antwort

1

Wenn Sie die Deinstallation der anderen Komponente nicht ausführen müssen, können Sie eine benutzerdefinierte Aktion verwenden, um Dateien/Ordner zu entfernen, die Sie ersetzen möchten.

Mit einer benutzerdefinierten Aktion werden Sie gezwungen, alle Bereinigungsaktionen durchzuführen, die der Uninstaller für Sie vornehmen würde.

Ersetzen Sie etwas oder versuchen Sie gerade etwas zu deinstallieren, nachdem Sie etwas völlig anderes installiert haben?

MSDN Custom Action Walkthrough

Ich habe auch ein paar Artikel von Phil Wilson, die mit benutzerdefinierten Aktionen hilfreich waren:
Phil Wilson on Custom Actions

0

ich glaube, Sie uninst.exe dieses Programm durch den Shell-Befehl, während der Installation gestartet laufen können .....

1

Ich stieß auf ein ähnliches Problem, das mehrere Installationen benötigt, um zusammen zu laufen und konnte keine Möglichkeit finden, MsiExec rekursiv auszuführen. Die Lösung, die ich verwendete, bestand darin, das Installationsprogramm mit einem Skript zu bündeln, das MsiExec einmal ausführen würde, um das alte Paket zu installieren/zu deinstallieren, und dann erneut, um das neue Installationsprogramm auszuführen. Clients mussten das zu installierende Skript ausführen.

Wenn Sie einen besseren Weg finden, lassen Sie es mich wissen.

Verwandte Themen