使用正则表达式更改编译版本号
针对Visual Studio 6.0开发环境:
标准情况下在“【工程名】.rc”文件中写入版本号;也允许使用每次编译自动加1宏在VersionNo.h中写入版本号。在新建项目时必须选择其中一种!
u 标准rc文件:
FILEVERSION 1,0,0,1
VALUE "FileVersion", "1, 0, 0, 1"
u 标准VersionNo.h:
#define FILEVER 1,0,0,1
针对Visual Studio .net开发环境
托管环境: 必须建立AssemblyInfo文件,不允许修改AssemblyVersion,只修改AssemblyFileVersion
非托管环境:和Visual Studio 6.0开发环境一致,建立*.rc或VersionNo.h文件
u 标准AssemblyInfo.cs
[assembly: AssemblyFileVersion("1.0.0.1")]
u 标准AssemblyInfo.vb
<assembly: AssemblyFileVersion("1.0.0.1")>
标准版本号物理形式表示为用句点(/逗号)隔开的四段数字,如下面的代码示例所示。
<major version>.<minor version>.<build number>.<revision>
case 1: <major version>
case 2: <major version>.<minor version>
case 3: <major version>.<minor version>.<build number>
case 4: <major version>.<minor version>.<build number>.<revision>
2 {
3 case 4:
4 replacement = String.Format("${{4}}{0}${{5}}{1}${{6}}{2}${{7}}{3}${{8}}", verArg);
5 break;
6 case 3:
7 replacement = String.Format("${{3}}{0}${{4}}{1}${{5}}{2}${{6}}", verArg);
8 break;
9 case 2:
10 replacement = String.Format("${{2}}{0}${{3}}{1}${{4}}", verArg);
11 break;
12 case 1:
13 replacement = String.Format("${{1}}{0}${{2}}", verArg);
14 break;
15 }
正则表达式替换版本号
2 // AssemblyVersion attribute with the specified build number.
3 rgx = new Regex(pattern);
4
5 // Replace the build component of the AssemblyVersion attribute
6 // with the specified build number.
7 fileContents = rgx.Replace(fileContents, replacement);
app.config(只举了case 2和case 4的例子)
2 <add key="buildVerFileNum" value="5"/>
3 <add key="buildVerFileNum1" value="VersionNo.h" /> <!-- 这时可能存在*.rc2 -->
4 <add key="buildVerFileNum2" value=".rc" />
5 <add key="buildVerFileNum3" value=".rc2" />
6 <add key="buildVerFileNum4" value="AssemblyInfo.vb" />
7 <add key="buildVerFileNum5" value="AssemblyInfo.cs" />
8
9
10 <!-- 与上面的文件名对应的匹配模式 -->
11 <!-- 更改四段版本号 -->
12 <!-- add key="pattern1" value="(?<4>#define\sFILEVER\s+)[0-9]+(?<5>[\.,])[0-9]+(?<6>[\.,])[0-9]+(?<7>[\.,])[0-9]+(?<8>[\r\n])"/>
13 <add key="pattern2" value="(?<4>FILEVERSION\s+)[0-9]+(?<5>[\.,])[0-9]+(?<6>[\.,])[0-9]+(?<7>[\.,])[0-9]+(?<8>[\r\n])"/>
14 <add key="pattern3" value="(?<4>assembly:\sAssemblyVersion\(")[0-9]+(?<5>[\.,])[0-9]+(?<6>[\.,])[0-9]+(?<7>[\.,])[0-9]+(?<8>")"/>
15 <add key="pattern4" value="(?<4>assembly:\sAssemblyVersion\(")[0-9]+(?<5>[\.,])[0-9]+(?<6>[\.,])[0-9]+(?<7>[\.,])[0-9]+(?<8>")"/ -->
16 <!-- 更改<major version>.<minor version> -->
17 <add key="pattern1" value="(?<2>#define\sFILEVER\s+)[0-9]+(?<3>[\.,])[0-9]+(?<4>[\.,])"/>
18 <add key="pattern2" value="(?<2>FILEVERSION\s+)[0-9]+(?<3>[\.,])[0-9]+(?<4>[\.,])"/>
19 <add key="pattern3" value="(?<2>VALUE\s+"FileVersion"[\.,]\s*")[0-9]+(?<3>[\.,]\s*)[0-9]+(?<4>[\.,]\s*)"/>
20 <add key="pattern4" value="(?<2>assembly:\sAssemblyVersion\(")[0-9]+(?<3>[\.,])[0-9]+(?<4>[\.,])"/>
21 <add key="pattern5" value="(?<2>assembly:\sAssemblyVersion\(")[0-9]+(?<3>[\.,])[0-9]+(?<4>[\.,])"/>
使用正则表达式更改编译版本号相关推荐
- 高级进阶:Azure DevOps搞定.NET Core编译版本号自增
点击上方蓝字关注"汪宇杰博客" 熟悉.NET Framework的人知道,我们可以通过指定AssemblyVersion为10.0.*来让编译器自增版本号.但是.NET Core和 ...
- Python正则表达式之编译正则表达式(2)
文章目录 声明 编译正则表达式 麻烦的反斜杠 实现匹配 `match()` `search()` `findall()` `finditer()` 声明 Python 通过 re 模块为正则表达式引擎 ...
- Pattern类正则表达式的编译表示形式
示例: package com.igeek01;import java.util.regex.Matcher; import java.util.regex.Pattern;/** java.util ...
- chromium 03 修改chromium 编译版本号
chromium 版本号定义在 src\chrome\VERSION 中.单纯的修改这里的版本号,一般是不能顺利编译通过的.比如68.0.3440.105要修改为主版本号大于 10的,比如:10.0. ...
- iOS 获取“关于本机”中软件版本的编译版本号
iPhone "设置" -> "通用" -> "关于本机" 中的软件编译版本号如下图所示: 那么如何通过代码去获取软件编译版本号 ...
- vs怎么更改编译的堆空间_再见吧 buildSrc, 拥抱 Composing builds 提升 Android 编译速度...
前言 长期以来困扰我们的一个问题就是构建速度,AndroidStudio 的构建速度严重影响 Android 开发者的工作效率,尤其是更新一个版本号,导致整个项目重新构建,在网络慢的情况下,这是无法忍 ...
- java时间戳版本号_maven 自动编译版本号 buildnumber-maven-plugin 1.4
最近新项目要需要更新发布版本号,用于标识发布的版本,网上找了下插件:buildnumber-maven-plugin 1.4 . 记录下自己使用成功过程中遇到的各种问题,以供需要的朋友参考: 插件官方 ...
- java 正则 预编译_正则表达式预编译功能的正确使用
在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度. 同时,Pattern要定义为static final静态变量,以避免执行多次预编译. 下面,我们列举两类使用正则的场景,来具体说明预 ...
- linux 更改wp版本号,代码实现移除 WordPress 版本号
默认情况下,WordPress会在页头输出版本号,有一定安全隐患. 在当前主题的functions.php中添加以下代码,可同时移除feed和js/css中的WordPress版本号: // 同时删除 ...
最新文章
- xutils使用手册(二)——数据库
- 【Flutter】Dart 技巧 ( 独立主函数入口 | 可空类型判定 | 默认值设定 )
- 近几年前端技术盘点以及 2016 年技术发展方向
- 如何解决With template button disable的问题
- 数字化转型之道:如何减少BI建设资源的浪费,缩短项目实施周期
- 温故知新,HTTP/2
- ubtil类oracle,oracle中报错Connect internal only, until freed
- bzoj 4451 : [Cerc2015]Frightful Formula FFT
- python 删除第三方库_python中通过pip安装的第三方库在哪里
- Codeforces 988D Points and Powers of Two ( 思维 || 二的幂特点 )
- mysql load data infile 上传数据 不显示_第22问:我有带外键的表,你有数据么?
- 百度之星作为座位调整java_百度之星程序设计大赛十周年算法合集20052014.PDF
- WPF:新手入门教程
- 展望未来城市,万物皆可运营
- 谁没有迟疑 彷徨的时候 --leo谈应届生求职 1
- Halcon 算子 convexity
- 利用C++求解一元二次方程
- 使用Python调用opencv学习(-)打开图片,显示图片
- 零基础制作【武林外传】辅助工具(一)
- LeetCode矩阵题——用辐射来理解
热门文章
- 实时OLAP分析利器Druid介绍
- Django model反向关联名称的方法(转)
- Python:课程期待
- linux下ls出现文件的后缀有@,* ,/之类的解释
- codeproject上的一款分页控件
- Hbuilder----安装less插件(详细)
- oracle建按月分区的表,ORACLE创建按月和按天的自动递增分区
- java开发常用jar包_Java开发中常用jar包整理及使用
- 使用事件委托降低重复的事件绑定,从而降低dom操作的对性能的消耗[兼容IE版]
- 安卓桌布显示的dip和px