【问题标题】:How to extract componentId of the exe file如何提取exe文件的componentId
【发布时间】:2015-07-07 17:13:39
【问题描述】:

我试图为 Windows 窗体应用程序创建一个 msi 设置。只有在本地系统上安装了 Access 数据库引擎 12.0 时,才应安装此 msi。

所以我尝试在 Visual Studio 安装程序中设置午餐条件。现在,如果我想将此驱动程序作为安装新应用程序的先决条件,我需要此驱动程序的 COMPONENETID 以便我可以在启动条件中设置一个条件。

我有 Access 数据库引擎 12.0 的和 exe,但无法确定它的组件 ID。我尝试为此目的使用 ORCA 工具,但 ORCA 工具仅适用于 .msi 而不是 .exe。有人可以帮我解决这个问题吗?提前致谢。

【问题讨论】:

    标签: visual-studio-2013 windows-installer orca


    【解决方案1】:

    如果您有像 WinZip 这样的工具(在撰写本文时有一个免费的 eval 版本),您可以打开该 exe,WinZip 会为您解压缩文件,而无需安装它。将有一个 MSI 文件(我上次查看时称为 AceRedist.msi),然后您可以按照您描述的方式使用 Orca。

    【讨论】:

    • 我通常只是启动一个干净的虚拟机,安装所需的任何 MSI,然后在 c:\windows\installer 中查找最近接触的文件,然后按照您的建议转到 Orca。
    • AceRedist.msi 即使未安装 Microsoft.Ace.Oledb.12.0 也可用。所以这个解决方案行不通。
    • @murari,但您的问题询问如何获取从 Aceredist.msi 安装的 Acess 数据库引擎中的组件 ID,因此如果您不想这样做,可能需要重新表述问题毕竟知道组件 ID。
    【解决方案2】:

    您是否有任何理由采用这种方法来检测先决条件的存在?在您的情况下,这里的先决条件似乎是 Access 数据库引擎 12.0。

    恕我直言,肯定有标准的方法来检测 Access 数据库引擎 12.0 的存在。一个简单的谷歌将我带到以下链接:

    https://community.flexerasoftware.com/showthread.php?201524-Determine-Microsoft-Database-Access-Engine-Version

    依赖第三方供应商提供的特定组件 GUID 肯定是有风险的,并且可能导致不必要的维护。

    问候, 基兰·赫格德

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多