PE文件版本那些事儿
发现文件的版本号很有意思,win7下右键属性显示两个版本号,分别是File Version 和 Product version。但使用vs编辑版本资源里面却有四处版本号,如下:
发现有以下区别,上面为module file version,其两个也就是FILEVERSION和PRODUCTVERSION必须为四位数字,在资源文件中看还必须用逗号分开。
下面的FileVersion和ProductVersion虽然常见也是点分四位数,但其实这两个值是string类型,也就是说这两个值可以是字符串。
那么问题来了,右键属性看到的是哪个版本号?
根据测试情况是这样的:属性中的File Version是资源中的FILEVERSION,属性中的Product Version是资源中的ProductVersion。
这样一来就清楚了,右键属性中的File Version格式是微软指定的四位点分数字,而Product Version可以是自定义的各种字符串。。。
后来发现有人问过类似问题:"File version" in Windows properties value is FILEVERSION not "FileVersion"