Search code examples
excelwixinstallationwindows-installerwix3

What is the best way to detect if Excel 2003 is installed?


I'm using Wix v3.0 (which boils down to an MSI installer) and I'm trying to author a condition to ensure that Excel 2003 is installed. What is the best (most robust) way to detect the presence of Excel 2003 on a machine?

I've seen lots of different suggestions, but no definitive or authoritative answer.


Solution

  • I found a file in the Office 2003 toolkit, Office 2003 Keypath and Default Installation Settings workbooks that contains all the GUIDs for the Components of Office. Based on this, I used a Component Search to locate the Core Excel component. In WiX my condition looks like this:

        <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 has Component Guids for other Office Apps and other versions.