如何最好地检测Excel 2003是否已安装?

3
我正在使用Wix v3.0(它归结为MSI安装程序),我正在尝试编写一个条件来确保安装了Excel 2003。检测计算机上是否安装了Excel 2003的最佳(最强大)方法是什么?
我看到了很多不同的建议,但没有明确或权威的答案。
4个回答

8
我在Office 2003工具包中找到了一个文件,“Office 2003 Keypath and Default Installation Settings Workbooks”,其中包含Office各组件的GUID。基于此,我使用“组件搜索”定位核心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应用程序和其他版本的组件Guids。


4

我们在以下位置检查InstallRoot注册表键:

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

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

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

至少对于2000、XP、2003、2007和2010版本,这似乎运行良好。唯一的变化是,对于2010年版,64位版本需要您查看注册表的64位部分。


0

你可以尝试检查注册表,或者查看 Excel 的典型安装路径。


0

Excel(Office)也是由Windows Installer安装的。 为什么不检查Excel组件代码呢?


我考虑过这个问题,但是手头没有Office MSI文件,也没有Excel组件代码。你有吗? - Samuel Jack
抱歉,我没有Office - 我们正在使用OO。但是您可以使用安装程序API查询它们。无论如何,您必须使用API来增加Excel组件的使用计数。如果您不这样做,Excel(功能/组件)可能会被卸载,您的应用程序将无法正常工作。 - coding Bott

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接