构建版本与修订版号

时间:2010-07-28 10:56:55

标签: c# asp.net svn revision revisions

我有一个asp.net/C#应用程序,它使用subversion进行源代码控制。

我的应用程序会自动增加每个构建的AssembleVersion和AssemblyFileVersion,它就像魅力一样,并在站点的管理端显示构建号。

当我们进行部署时,我们会跟踪AssembleVersion和AssemblyFileVersion,但是,当出现问题并且我们需要回滚到某个版本时,我们不知道要在subversion中定位哪个版本。

我的想法很少:

  1. 将AssembleVersion保存为每个文件中的注释
  2. 在提交注释中有一个关键字,在每次提交时都会被AssembleVersion替换(仍需要弄清楚如何操作)
  3. 任何帮助和建议将不胜感激

    更新 选项“1”实际上是一个愚蠢的想法,因为这意味着每次我构建,所有文件都将被标记为更新,当我提交时,每个文件都将被更新

8 个答案:

答案 0 :(得分:4)

答案 1 :(得分:4)

当我构建时,我将该版本号放在任何地方。

  • 我把它放在svn。{/ li>中的tag
  • 我把它放在我构建的每个程序集的程序集元数据中。
  • 我将其附加到我的安装程序中的文件名末尾。
  • 我把它放在我部署的每个网页的页脚中。
  • 我把它放在报告的页脚中。
  • 我把它放在客户端应用程序的启动画面中。
  • 我把它放在我的安装人员的欢迎屏幕上。

我唯一没有把它放进去的是我的咖啡,I take black

所有这一切都让维护人员一目了然地知道代码来自哪里,无论他们是在查看网页,还是在资源管理器中查看其中一个构建的程序集的属性,或者其他什么

答案 2 :(得分:3)

如果碰巧经常构建标签,那么标签并不是很有用。也许找到一种方法来更新基于svn修订版的Assembly版本?还包括分支名称,因为它们共享修订版。

您应该能够在ASP.NET页面中提取程序集版本,并以页脚或其他方式以编程方式打印它。

答案 3 :(得分:2)

您可以使用AssembleVersion或AssemblyFileVersion标记Subversion主干,无论哪个最有意义。

您还可以跟踪Subversion版本号,就像您在部署时跟踪AssembleVersion和AssemblyFileVersion一样。

答案 4 :(得分:2)

在更新AssemblyVersionAssemblyFileVersion后,将标记应用于源树。

答案 5 :(得分:2)

你可以“分支发布”。在创建发布版本之前,您可以对主干进行分支,然后在新分支上使用发行版本号创建标记。

              + release tag
             /
            +--------------------- release branch
           /  
----------+----------------------------------------------------- trunk

这将允许您跟踪SVN中的所有单个版本。它还允许您在可作为补丁发布的发布分支上进行单独的错误修复。然后可以将错误修复合并回主干。

              +                 + patch release tag
             /                 /
            +-----------------+-+---- release branch
           /                    | merged fix into trunk...
----------+----------------------------------------------------- trunk

答案 6 :(得分:2)

标签/分支绝对是推荐的方法。

您还可以(或另外)在AssemblyInfo中包含svn修订号。一种方法是使用http://msbuildtasks.tigris.org

中msbuildtasks项目中的AssemblyInfo任务

有关详细信息,请访问Google msbuild svn revision assemblyinfo

可以然后没有标签/分支,因为你总是可以检查特定的修订,和/或从特定的修订创建一个分支。

答案 7 :(得分:0)

另一种选择是使用上次更改的修订版作为您的内部版本号。这意味着每次构建自动标记时。使用hudson / jenkins很容易,因为你有一个环境变量SVN_REVISION。问题是版本号变得非常大,关于1.0.0.20456与1.0.0.20489的走廊讨论是满口的。