针对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>

 1             switch (verArg.Length)
 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             }

正则表达式替换版本号

1 // Build a regular expression to replace the build component of the
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的例子)

 1 <!-- 与版本号有关的文件 -->
 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="(?&lt;4&gt;#define\sFILEVER\s+)[0-9]+(?&lt;5&gt;[\.,])[0-9]+(?&lt;6&gt;[\.,])[0-9]+(?&lt;7&gt;[\.,])[0-9]+(?&lt;8&gt;[\r\n])"/>
13     <add key="pattern2" value="(?&lt;4&gt;FILEVERSION\s+)[0-9]+(?&lt;5&gt;[\.,])[0-9]+(?&lt;6&gt;[\.,])[0-9]+(?&lt;7&gt;[\.,])[0-9]+(?&lt;8&gt;[\r\n])"/>
14     <add key="pattern3" value="(?&lt;4&gt;assembly:\sAssemblyVersion\(&quot;)[0-9]+(?&lt;5&gt;[\.,])[0-9]+(?&lt;6&gt;[\.,])[0-9]+(?&lt;7&gt;[\.,])[0-9]+(?&lt;8&gt;&quot;)"/>
15     <add key="pattern4" value="(?&lt;4&gt;assembly:\sAssemblyVersion\(&quot;)[0-9]+(?&lt;5&gt;[\.,])[0-9]+(?&lt;6&gt;[\.,])[0-9]+(?&lt;7&gt;[\.,])[0-9]+(?&lt;8&gt;&quot;)"/ -->
16     <!-- 更改<major version>.<minor version> -->
17     <add key="pattern1" value="(?&lt;2&gt;#define\sFILEVER\s+)[0-9]+(?&lt;3&gt;[\.,])[0-9]+(?&lt;4&gt;[\.,])"/>
18     <add key="pattern2" value="(?&lt;2&gt;FILEVERSION\s+)[0-9]+(?&lt;3&gt;[\.,])[0-9]+(?&lt;4&gt;[\.,])"/>
19     <add key="pattern3" value="(?&lt;2&gt;VALUE\s+&quot;FileVersion&quot;[\.,]\s*&quot;)[0-9]+(?&lt;3&gt;[\.,]\s*)[0-9]+(?&lt;4&gt;[\.,]\s*)"/>
20     <add key="pattern4" value="(?&lt;2&gt;assembly:\sAssemblyVersion\(&quot;)[0-9]+(?&lt;3&gt;[\.,])[0-9]+(?&lt;4&gt;[\.,])"/>
21     <add key="pattern5" value="(?&lt;2&gt;assembly:\sAssemblyVersion\(&quot;)[0-9]+(?&lt;3&gt;[\.,])[0-9]+(?&lt;4&gt;[\.,])"/>

使用正则表达式更改编译版本号相关推荐

  1. 高级进阶:Azure DevOps搞定.NET Core编译版本号自增

    点击上方蓝字关注"汪宇杰博客" 熟悉.NET Framework的人知道,我们可以通过指定AssemblyVersion为10.0.*来让编译器自增版本号.但是.NET Core和 ...

  2. Python正则表达式之编译正则表达式(2)

    文章目录 声明 编译正则表达式 麻烦的反斜杠 实现匹配 `match()` `search()` `findall()` `finditer()` 声明 Python 通过 re 模块为正则表达式引擎 ...

  3. Pattern类正则表达式的编译表示形式

    示例: package com.igeek01;import java.util.regex.Matcher; import java.util.regex.Pattern;/** java.util ...

  4. chromium 03 修改chromium 编译版本号

    chromium 版本号定义在 src\chrome\VERSION 中.单纯的修改这里的版本号,一般是不能顺利编译通过的.比如68.0.3440.105要修改为主版本号大于 10的,比如:10.0. ...

  5. iOS 获取“关于本机”中软件版本的编译版本号

    iPhone "设置" -> "通用" -> "关于本机" 中的软件编译版本号如下图所示: 那么如何通过代码去获取软件编译版本号 ...

  6. vs怎么更改编译的堆空间_再见吧 buildSrc, 拥抱 Composing builds 提升 Android 编译速度...

    前言 长期以来困扰我们的一个问题就是构建速度,AndroidStudio 的构建速度严重影响 Android 开发者的工作效率,尤其是更新一个版本号,导致整个项目重新构建,在网络慢的情况下,这是无法忍 ...

  7. java时间戳版本号_maven 自动编译版本号 buildnumber-maven-plugin 1.4

    最近新项目要需要更新发布版本号,用于标识发布的版本,网上找了下插件:buildnumber-maven-plugin 1.4 . 记录下自己使用成功过程中遇到的各种问题,以供需要的朋友参考: 插件官方 ...

  8. java 正则 预编译_正则表达式预编译功能的正确使用

    在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度. 同时,Pattern要定义为static final静态变量,以避免执行多次预编译. 下面,我们列举两类使用正则的场景,来具体说明预 ...

  9. linux 更改wp版本号,代码实现移除 WordPress 版本号

    默认情况下,WordPress会在页头输出版本号,有一定安全隐患. 在当前主题的functions.php中添加以下代码,可同时移除feed和js/css中的WordPress版本号: // 同时删除 ...

最新文章

  1. xutils使用手册(二)——数据库
  2. 【Flutter】Dart 技巧 ( 独立主函数入口 | 可空类型判定 | 默认值设定 )
  3. 近几年前端技术盘点以及 2016 年技术发展方向
  4. 如何解决With template button disable的问题
  5. 数字化转型之道:如何减少BI建设资源的浪费,缩短项目实施周期
  6. 温故知新,HTTP/2
  7. ubtil类oracle,oracle中报错Connect internal only, until freed
  8. bzoj 4451 : [Cerc2015]Frightful Formula FFT
  9. python 删除第三方库_python中通过pip安装的第三方库在哪里
  10. Codeforces 988D Points and Powers of Two ( 思维 || 二的幂特点 )
  11. mysql load data infile 上传数据 不显示_第22问:我有带外键的表,你有数据么?
  12. 百度之星作为座位调整java_百度之星程序设计大赛十周年算法合集20052014.PDF
  13. WPF:新手入门教程
  14. 展望未来城市,万物皆可运营
  15. 谁没有迟疑 彷徨的时候 --leo谈应届生求职 1
  16. Halcon 算子 convexity
  17. 利用C++求解一元二次方程
  18. 使用Python调用opencv学习(-)打开图片,显示图片
  19. 零基础制作【武林外传】辅助工具(一)
  20. LeetCode矩阵题——用辐射来理解

热门文章

  1. 实时OLAP分析利器Druid介绍
  2. Django model反向关联名称的方法(转)
  3. Python:课程期待
  4. linux下ls出现文件的后缀有@,* ,/之类的解释
  5. codeproject上的一款分页控件
  6. Hbuilder----安装less插件(详细)
  7. oracle建按月分区的表,ORACLE创建按月和按天的自动递增分区
  8. java开发常用jar包_Java开发中常用jar包整理及使用
  9. 使用事件委托降低重复的事件绑定,从而降低dom操作的对性能的消耗[兼容IE版]
  10. 安卓桌布显示的dip和px