当前位置 : 主页 > 网络推广 > seo >

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

来源:互联网 收集:自由互联 发布时间:2021-06-16
我用WiX创建了一个MSI文件.源WiX文件包含如下版本信息: Product Id="..." Name="..." Language="1033" Version="1.0.0.1" Manufacturer="..." UpgradeCode="..." MSI文件似乎工作正常:它安装,卸载,当我增加版本号时
我用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显示您可以在Property表中查询“ProductVersion”,或者您可以使用:: MsiGetProductProperty()来执行相同操作.
网友评论