zoukankan      html  css  js  c++  java
  • 使用正则表达式更改编译版本号

    针对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;[\.,])"/>

  • 相关阅读:
    Attach Files to Objects 将文件附加到对象
    Provide Several View Variants for End-Users 为最终用户提供多个视图变体
    Audit Object Changes 审核对象更改
    Toggle the WinForms Ribbon Interface 切换 WinForms 功能区界面
    Change Style of Navigation Items 更改导航项的样式
    Apply Grouping to List View Data 将分组应用于列表视图数据
    Choose the WinForms UI Type 选择 WinForms UI 类型
    Filter List Views 筛选器列表视图
    Make a List View Editable 使列表视图可编辑
    Add a Preview to a List View将预览添加到列表视图
  • 原文地址:https://www.cnblogs.com/linn/p/754609.html
Copyright © 2011-2022 走看看