发布软件时,需要修改.rc文件的版本号再编译工程,以便于当模块出现问题快速确定所使用模块的版本号,可使用Python在编译前进行自动修改版本号再编译发布:
//util_modify_rc_file_version.py
# modify .rc file version
import sys,re
if __name__=="__main__":
filename = sys.argv[1]
version = sys.argv[2]
versionMacro = version.replace('.', ',')
versionString = version.replace(',', '.')
filename = filename.replace("\\\\","\\")
f = open(filename, 'r', encoding='utf-16')
lines = f.readlines()
newLines = []
for line in lines:
if line.startswith(' FILEVERSION '):
line = ' FILEVERSION ' + versionMacro + '\n'
elif line.startswith(' PRODUCTVERSION '):
line = ' PRODUCTVERSION ' + versionMacro + '\n'
else:
line = re.sub( r'(\s+VALUE\s"FileVersion",\s+)"(.*)"',r'\1"%s"' % versionString, line)
line = re.sub( r'(\s+VALUE\s"ProductVersion",\s+)"(.*)"',r'\1"%s"' % versionString, line)
newLines.append(line)
f.close()
f = open(filename, 'w', encoding='utf-16')
f.writelines(newLines)
f.close()示例:
python "C:\util_modify_rc_file_version.py" "C:\demo.rc" "1.2.3.4"
说明:传入的第一个参数是要修改的.rc文件路径,第二个参数是版本号
其它:配合Jenkins在发布时自动修改版本号效果更佳,一劳永逸 :)
注意:我当前使用的是VS2015生成的.rc文件默认编码是utf-16 little endian,其它编码请自行修改打开和保存.rc文件的编码,另外要在执行这个脚本修改.rc文件版本后再编译项目哟~
本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!