检测Excel 2003是否安装的最佳方法是什么?

我正在使用WIX v3.0(归结为一个MSI安装程序),我试图编写一个条件来确保安装了Excel 2003。 检测计算机上是否存在Excel 2003的最佳方法是什么?

我见过很多不同的build议,但没有明确或权威的答案。

我在Office 2003工具包, Office 2003 Keypath和“默认安装设置”工作簿中find了包含Office组件的所有GUID的文件。 基于此,我使用组件search来查找核心Excel组件。 在WiX我的情况看起来像这样:

<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> 

此页面有其他Office应用程序和其他版本的组件Guid。

我们检查InstallRootregistry项:

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

(将12.0replace为您的应用程序的相关版本号)。

请注意,在64位操作系统上,这将反映到registry的32位部分(有关registryreflection的更多信息,请参阅此Microsoft文章 )。

至less在版本2000,XP,2003,2007和2010中,这似乎很好。 2010年唯一的变化是,64位版本需要你在registry的64位部分查找。

您可以尝试检查registry,或者可能是excel的典型安装path。

Excel(Office)也由Windows安装程序安装。 你为什么不检查Excel的组件代码?