从 Wix Bootstrapper Bundle 检查文件版本

Posted

技术标签:

【中文标题】从 Wix Bootstrapper Bundle 检查文件版本【英文标题】:Check for a file version from a Wix Bootstrapper Bundle 【发布时间】:2012-09-21 14:43:14 【问题描述】:

我为我的 WIX 安装程序创建了一个引导程序应用程序。我捆绑的安装程序之一需要具有基于已安装文件版本的安装条件。我无权访问相关安装程序的源代码,因此无法将条件放入该安装程序中。

我找到了in the documentation 如何在 MSI 中创建基于文件版本的条件。 ()

我的问题是如何在引导程序项目中直接使用类似的条件。

【问题讨论】:

【参考方案1】:

使用来自 WixUtilExtension 的 FileSearch 将文件的版本获取到 Burn 变量中。您可以在包的 InstallCondition 中使用 Burn 变量。

【讨论】:

如何搜索不一定在固定路径中的文件版本?我有一个 Outlook 插件,要找出 Outlook 版本,我需要转到一个注册表项以查找 Outlook 当前版本,并基于此,我必须转到另一个特定于该 Outlook 版本的注册表项,它告诉我该特定版本在哪里已安装 Outlook 版本。那么我必须找到outlook.exe的版本来确定它是否是SP3【参考方案2】:

正如 Bob Arnson 所说,您可以像这样在引导项目中获得一个版本

<util:FileSearch  
        Id="CheckVer"
        Path="[CommonFilesFolder]\xyz\xyz\abc.dll"
        Variable="FILEVERSION" 
        Result="version" />

FILEVERSION 将包含 dll 或 exe 的版本。 如文档中所述 FileSearch Element

【讨论】:

以上是关于从 Wix Bootstrapper Bundle 检查文件版本的主要内容,如果未能解决你的问题,请参考以下文章

[Wix Bundle Managed Bootstrapper]错误 0x80070002:无法创建托管引导程序应用程序

在 Window 安装程序 XML 中使用 Bootstrapper 制作单个 Bundle 项目

WiX Bootstrapper:如何从命令行设置刻录变量?

Wix Bootstrapper - 从安全的 http 存储库下载捆绑包

WiX-Bootstrapper - 为 UAC 对话框设置产品名称和公司名称

WiX Bootstrapper 项目结构