我用 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 也会出现同样的错误。