gpt4 book ai didi

wix - 检索 MSI 文件的版本(使用 WiX 构建)

转载 作者:行者123 更新时间:2023-12-04 05:27:56 26 4
gpt4 key购买 nike

我已经用 WiX 创建了一个 MSI 文件。源 WiX 文件包含如下版本信息:

<Product Id="..." 
Name="..."
Language="1033"
Version="1.0.0.1"
Manufacturer="..."
UpgradeCode="...">

MSI 文件似乎工作正常:它安装、卸载、当我增加版本号时升级,等等。

但是,当我尝试通过调用 MsiGetFileVersion() API 获取有关此文件的版本信息时,它返回错误 1006 (ERROR_FILE_INVALID
文件不包含版本信息。)

因此我的问题是:如何(以编程方式,在 C++ 中)检索 MSI 文件的版本号?或者,换句话说,版本信息应该放在 WiX 文件中的哪个位置以便通过 MsiGetFileVersion() 检索?

更多信息:同样的错误发生在 Windows XP 上的 MSI 3.0 和 Vista 上的 MSI 4.0。

最佳答案

为了完整起见,::MsiGetFileVersion() 是一个函数,它以与 Windows 安装程序相同的方式从 PE 文件(.exe 或 .dll)读取版本资源信息。这对于使用构建工具(例如 WiX toolset )很重要,以便它们正确填充 File/@Version 信息。它不会从 MSI 中获取版本信息。正如@sascha 所示,您可以查询“ProductVersion”的属性表,或者您可以使用::MsiGetProductProperty() 来执行相同的操作。

关于wix - 检索 MSI 文件的版本(使用 WiX 构建),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/815744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com