我正在使用 Wix v3.0(归结为 MSI 安装程序),并且我正在尝试编写一个条件以确保已安装 Excel 2003。检测机器上是否存在 Excel 2003 的最佳(最可靠)方法是什么?
我看过很多不同的建议,但没有明确或权威的答案。
我正在使用 Wix v3.0(归结为 MSI 安装程序),并且我正在尝试编写一个条件以确保已安装 Excel 2003。检测机器上是否存在 Excel 2003 的最佳(最可靠)方法是什么?
我看过很多不同的建议,但没有明确或权威的答案。
我在 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 应用程序和其他版本的组件指南。
我们在以下位置检查 InstallRoot 注册表项:
HKLM\Software\Microsoft\Office\12.0\Excel\InstallRoot
(将 12.0 替换为您的应用程序的相关版本号)。
请注意,在 64 位操作系统上,这将反映到注册表的 32 位部分(有关注册表反射的更多信息,请参阅此 Microsoft 文章)。
这似乎至少适用于 2000、XP、2003、2007 和 2010 版本。2010 年的唯一变化是 64 位版本需要您查看注册表的 64 位部分。
您可以尝试检查注册表,或者可能是 excel 的典型安装路径。
Excel (Office) 也由 windows 安装程序安装。为什么不检查 excel 组件代码?