2016-03-21 13 views
0

Ich habe einfache msi erstellt, jetzt möchte ich überprüfen, ob eine andere Anwendung auf dem Client-Rechner installiert ist oder nicht, bevor meine MSI ausgeführt wird.Überprüfen Sie eine andere installierte Anwendung, bevor MSI ausgeführt

weil die Anwendung, die ich erstellt habe, eine Abhängigkeit von einer anderen Anwendung hat. Wenn meine Anwendung auf dem Clientcomputer ausgeführt werden muss, sollte auf diesem Computer eine andere Anwendung installiert sein.

Angenommen, a.exe hat eine Abhängigkeit von b.exe.

Ich habe msi für a.exe erstellt, wenn ich MSI für a.exe im Client-Rechner ausführen, dann muss diese msi erkennen, ob b.exe auf dem Client-Rechner installiert ist oder nicht. wenn nicht, dann die isntallation msi beenden

+0

Wie erstellen Sie das Installationsprogramm, verwenden Sie das Visual Studio-Paket und das Bereitstellungsprojekt? –

+0

ist b.exe auch mit einem MSI-basierten Installer bereitgestellt? – yossiz74

+0

Yossiz74, Ja. –

Antwort

1

Wenn die andere Anwendung wurde MSI installiert verwenden,

können Sie Upgrade-Mechanismus verwenden.

WiX:

<Upgrade Id="<UpgradeCode of the another App>"> 
    <UpgradeVersion Property="PREVIOUSINSTALLEDAPP" /> 
</Upgrade> 

<Condition Message="Please Install another application"> 
    <![CDATA[PREVIOUSINSTALLEDAPP]]> 
</Condition> 

und sicherstellen, dass FindRelatedProducts vor Launch sequenziert.

0

Wenn Sie den Visual Studio Installer verwendet haben, sind die Optionen etwas eingeschränkt. Wenn die Installation von B einen Registrierungsschlüssel erstellt, kann der Zielcomputer der Suche in Ihrem Setup nach diesem Schlüssel suchen und ihn als Startbedingung verwenden. Wenn Sie das MSI für B haben, können Sie es mit Orca aus dem Windows SDK-Kit öffnen und in der Component-Tabelle nach der Component Guid für (sagen wir) die ausführbare Datei suchen, die installiert ist. Auch dies kann in Search Target Machine für eine Windows Installer-Suche und eine Startbedingung verwendet werden.

Im Allgemeinen funktionieren diese Überprüfungen besser in der tatsächlichen App als in der Installation. Sie erzwingen einen Installationsauftrag, der möglicherweise sinnlos ist, da Ihre Installation nicht von B abhängt, nur Ihre Anwendung. Es ist also angenehmer, eine Installationsbestellung zuzulassen und den Check in Ihre App zu schreiben, der sagt, dass B funktionieren muss, wenn es nicht installiert ist. Wenn der Benutzer B deinstalliert, bedeutet das, dass Ihre App einfach abstürzt, weil die einzige Überprüfung zur Installationszeit erfolgt?

Verwandte Themen