日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/31 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用正则表达式更改编译版本号 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

針對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開發環境一致,建立*.rcVersionNo.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;[\.,])"/>

總結

以上是生活随笔為你收集整理的使用正则表达式更改编译版本号的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。