发布软件时,需要修改.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文件版本后再编译项目哟~
本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!