【问题标题】:What is the best way to detect if Excel 2003 is installed?检测是否安装了 Excel 2003 的最佳方法是什么?
【发布时间】:2009-03-16 12:28:29
【问题描述】:

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

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

【问题讨论】:

    标签: excel wix installation windows-installer wix3


    【解决方案1】:

    我在 Office 2003 工具包中找到了一个文件 Office 2003 Keypath and Default Installation Settings workbooks,其中包含 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>
    

    This page 具有其他 Office 应用程序和其他版本的组件指南。

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

          • 我确实考虑过这一点,但是,手头没有 Office MSI 文件就没有 Excel 组件代码。你有吗?
          • 对不起,我没有办公室 - 我们正在使用 OO。但是您可以使用安装程序 api 来查询它们。无论如何,您都必须使用 api 来增加 excel 组件的使用次数。如果您不这样做,则可以卸载 excel(功能/组件)并且您的应用程序不再工作。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-09-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-12
          • 2018-03-03
          • 1970-01-01
          相关资源
          最近更新 更多