【问题标题】:Automatically advance minor version number every build (VS 2008)每次构建时自动提升次要版本号(VS 2008)
【发布时间】:2010-12-13 01:33:16
【问题描述】:

我使用程序集信息版本号 - 并通过 VS 2008 手动推进。

有没有办法在我每次构建解决方案时自动提升次要版本号?

【问题讨论】:

    标签: visual-studio-2008 assemblies


    【解决方案1】:

    Visual Studio 有一个内置机制:

    AssemblyInfo.cs里面,改一下这个设置:

    [assembly: AssemblyVersion("1.0.*")]
    

    星号指示 Visual Studio 为每个构建分配一个版本 1.0.d.s,其中 d 是自 2000 年 2 月 1 日以来的天数,s 是自午夜/2 以来的秒数。

    编辑:

    看看这个网页:http://www.codeproject.com/KB/dotnet/ManagingAssemblyVersions.aspx里面有很多信息:如何管理版本号。

    【讨论】:

    • 10x,我怎么知道哪个是当前数字/有一个“sid” - 意思是 - 如果项目在数字 55 中并且我希望它从 56 自动启动? (或者在大版本号更改后从零开始?)
    • 如果我没记错的话,第一个生成的数字将根据日期生成,第二个生成数字。所以你会得到像 1.0.4245.51002 这样的数字
    • 好吧,它可以工作(投票),但我不能控制起始编号吗?我得到: 1.0.0.31411 并且在 1 次构建后它去了 31485 !所以它甚至不会按顺序跳跃......
    【解决方案2】:

    IIRC 在您的解决方案资源管理器中,单击“显示所有文件”,我相信它是该窗口顶部附近的第三个。

    (双击)单击“我的项目”。

    接下来,双击“AssemblyInfo.vb”

    在代码编辑器中,向下滚动直到到达底部。

    注释掉

    替换

    <Assembly: AssemblyVersion("1.0.0.0")> 
    

    <Assembly: AssemblyVersion("1.*.0")> 
    

    点击“保存”。

    那么你就完成了!

    【讨论】:

    • 是的,但这并不能很好地推进内部版本号 - 它只是抓取当前时间和日期并将其粘贴在那里,所以你的内部版本号看起来像 1.0.21643.23849 等等。 ..
    • 谢谢你,我做个笔记。我记得我的一位同事曾经提到过它。
    【解决方案3】:

    我使用这个MSBuild Task 自动增加我的内部版本号 - 需要在您的 *.csproj 或 *.vbproj 文件中进行一些手动修改,但它工作得非常完美,而且非常灵活。

    【讨论】:

    • 我认为这更符合我的需要,我需要一些时间来测试它,但它看起来不错!谢谢!
    • 这是一个小问题,我使用的是 svn 控制环境,如果我不签出文件,它会锁定文件。使用此解决方案使我锁定了 assembly.cs 以进行构建。我想没有办法避免这种情况......但它会从解决方案中消除乐趣......
    【解决方案4】:

    一个灵活的选择是使用版本编号方案创建 T4 模板并引用 Visual Studio 从中生成的 .cs 文件。此类模板的示例:

    // // 此代码由工具生成。手动进行的任何更改都将丢失 // 下次重新生成此代码时。 //

    使用 System.Reflection;

    [程序集:AssemblyVersion("1.0.1.")] [程序集:AssemblyFileVersion("1.0.1.")]

    >

    在此示例中,修订号设置为自 2010 年 1 月 1 日以来的天数。但您可以提供任何自定义编号方案,因为它是纯 C#。

    我写了一个blog post 更详细地解释了这种技术:

    【讨论】:

    • 谢谢,我会查看您的博客以了解此技术。
    猜你喜欢
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    相关资源
    最近更新 更多