2009-03-16 9 views
3

Ich verwende Wix v3.0 (was auf ein MSI-Installationsprogramm hinausläuft) und ich versuche, eine Bedingung zu erstellen, um sicherzustellen, dass Excel 2003 installiert ist. Was ist die beste (robusteste) Möglichkeit, das Vorhandensein von Excel 2003 auf einem Computer zu erkennen?Wie erkennt man am besten, ob Excel 2003 installiert ist?

Ich habe viele verschiedene Vorschläge gesehen, aber keine endgültige oder verbindliche Antwort.

Antwort

8

fand ich eine Datei im Toolkit Office 2003, Office 2003 Keypath and Default Installation Settings workbooks, die alle GUIDs für die Komponenten von Office enthält. Basierend darauf habe ich eine Komponentensuche verwendet, um die Core Excel-Komponente zu finden. In WiX sieht mein Zustand wie folgt aus:

<Property Id="EXCEL2003INSTALLED"> 
     <!-- This is the Component Id of Global_Excel_Core --> 
     <ComponentSearch Id="DetectExcel2003" Guid="{A2B280D4-20FB-4720-99F7-40C09FBCE10A}" Type="file"/> 
    </Property> 
    <Condition Message="This application requires Excel 2003 to be installed."><![CDATA[Installed OR EXCEL2003INSTALLED]]></Condition> 

This page hat Component Guids für andere Office-Apps und andere Versionen.

0

Sie könnten versuchen, die Registrierung überprüft oder vielleicht der typische Weg für Excel installieren.

4

Wir überprüfen die InstallRoot Registrierungsschlüssel an:

HKLM\Software\Microsoft\Office\12.0\Excel\InstallRoot 

(Ersetzen 12.0 mit der entsprechenden Versionsnummer für Ihre Anwendung).

Beachten Sie, dass dies auf 64-Bit-Betriebssystemen in den 32-Bit-Abschnitt der Registrierung widergespiegelt wird (weitere Informationen zu Registry Reflection finden Sie unter this Microsoft article).

Dies scheint für die Versionen 2000, XP, 2003, 2007 und 2010 zumindest gut zu funktionieren. Die einzige Änderung für 2010 ist, dass Sie in der 64-Bit-Version im 64-Bit-Abschnitt der Registrierung suchen müssen.

0

Excel (Office) wird auch von Windows Installer installiert. Warum suchen Sie nicht nach den Excel-Komponentencodes?

+0

Ich habe dies berücksichtigt, aber nicht die Office MSI-Dateien zur Hand hatte nicht die Excel-Komponente Codes. Hast du sie? –

+0

Entschuldigung ich habe kein Büro - wir benutzen OO. Aber Sie können sie mit dem Installer API abfragen. Sie müssen die API trotzdem verwenden, um die Verwendungszahl der Excel-Komponenten zu erhöhen. Wenn Sie dies nicht tun, kann Excel (Funktionen/Komponenten) deinstalliert werden und Ihre App funktioniert nicht mehr. –