3

我正在使用 Wix v3.0(归结为 MSI 安装程序),并且我正在尝试编写一个条件以确保已安装 Excel 2003。检测机器上是否存在 Excel 2003 的最佳(最可靠)方法是什么?

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

4

4 回答 4

8

我在 Office 2003 工具包、 Office 2003 密钥路径和默认安装设置工作簿中找到了一个文件,其中包含 Office 组件的所有 GUID。基于此,我使用了组件搜索来定位 Core 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 应用程序和其他版本的组件指南。

于 2009-03-16T15:20:11.157 回答
4

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

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

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

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

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

于 2009-03-16T12:51:01.687 回答
0

您可以尝试检查注册表,或者可能是 excel 的典型安装路径。

于 2009-03-16T12:30:51.907 回答
0

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

于 2009-03-16T12:52:40.793 回答