200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 使用正则表达式更改编译版本号

使用正则表达式更改编译版本号

时间:2019-08-12 20:57:35

相关推荐

使用正则表达式更改编译版本号

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

1switch(verArg.Length)

2{

3case4:

4replacement=String.Format("${{4}}{0}${{5}}{1}${{6}}{2}${{7}}{3}${{8}}",verArg);

5break;

6case3:

7replacement=String.Format("${{3}}{0}${{4}}{1}${{5}}{2}${{6}}",verArg);

8break;

9case2:

10replacement=String.Format("${{2}}{0}${{3}}{1}${{4}}",verArg);

11break;

12case1:

13replacement=String.Format("${{1}}{0}${{2}}",verArg);

14break;

15}

正则表达式替换版本号

1//Buildaregularexpressiontoreplacethebuildcomponentofthe

2//AssemblyVersionattributewiththespecifiedbuildnumber.

3rgx=newRegex(pattern);

4

5//ReplacethebuildcomponentoftheAssemblyVersionattribute

6//withthespecifiedbuildnumber.

7fileContents=rgx.Replace(fileContents,replacement);

app.config(只举了case 2和case 4的例子)

1<!--与版本号有关的文件-->

2<addkey="buildVerFileNum"value="5"/>

3<addkey="buildVerFileNum1"value="VersionNo.h"/><!--这时可能存在*.rc2-->

4<addkey="buildVerFileNum2"value=".rc"/>

5<addkey="buildVerFileNum3"value=".rc2"/>

6<addkey="buildVerFileNum4"value="AssemblyInfo.vb"/>

7<addkey="buildVerFileNum5"value="AssemblyInfo.cs"/>

8

9

10<!--与上面的文件名对应的匹配模式-->

11<!--更改四段版本号-->

12<!--addkey="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<addkey="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<addkey="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<addkey="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<!--更改<majorversion>.<minorversion>-->

17<addkey="pattern1"value="(?&lt;2&gt;#define\sFILEVER\s+)[0-9]+(?&lt;3&gt;[\.,])[0-9]+(?&lt;4&gt;[\.,])"/>

18<addkey="pattern2"value="(?&lt;2&gt;FILEVERSION\s+)[0-9]+(?&lt;3&gt;[\.,])[0-9]+(?&lt;4&gt;[\.,])"/>

19<addkey="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<addkey="pattern4"value="(?&lt;2&gt;assembly:\sAssemblyVersion\(&quot;)[0-9]+(?&lt;3&gt;[\.,])[0-9]+(?&lt;4&gt;[\.,])"/>

21<addkey="pattern5"value="(?&lt;2&gt;assembly:\sAssemblyVersion\(&quot;)[0-9]+(?&lt;3&gt;[\.,])[0-9]+(?&lt;4&gt;[\.,])"/>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。