我应该在构建软件时自动增加程序集版本吗?

Posted

技术标签:

【中文标题】我应该在构建软件时自动增加程序集版本吗?【英文标题】:Should I auto-increment the assembly version when I build my software? 【发布时间】:2011-02-26 00:25:25 【问题描述】:

在 Visual Studio 2003 中,您可以轻松地将项目程序集设置为每次构建时自动递增,但在 Visual Studio 2005 中,此功能已被删除。您仍然可以在每次构建时自动增加您的程序集版本,但这是一个复杂的自定义构建步骤,而不是一个集成功能。

我不确定为什么要删除它,但这是我应该在不久前问的一个问题 - 我是否应该在构建时使用解决方法来继续自动递增,或者是否有充分的理由停止这样做,转而支持手动递增? 既然微软从 VS 中删除了它,也许有一个很好的理由,我想知道是否有人知道。

【问题讨论】:

【参考方案1】:

不,在 VS2005 及更高版本中支持 [AssemblyVersion] 的自动增量。让它看起来像这样:

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

我自己对这种能力几乎没有用处。 [AssemblyVersion] 描述程序集的外部可见公共接口。当我只是重建程序集时,这并没有改变。 [AssemblyFileVersion] 适用于跟踪内部版本号。遗憾的是,它确实具有自动增量功能。请注意 .NET 程序集如何使用该版本编号策略。

另请注意feedback item。

【讨论】:

【参考方案2】:

我个人不喜欢这样做,因为我目前正在从事一个项目,我需要能够确切地知道哪些功能添加到确切的版本中,并且如果每次构建时它都会自动递增,它会增加得太快。

但是,我认为这取决于您的项目是否利大于弊。这是一个旧的 MS 模式页面,讨论了内置自动增量的优缺点:http://msdn.microsoft.com/en-us/library/ee817676.aspx

【讨论】:

以上是关于我应该在构建软件时自动增加程序集版本吗?的主要内容,如果未能解决你的问题,请参考以下文章

Azure DevOps Build Pipeline:如何仅为更改的程序集增加程序集版本?

如何通过我们的 CI 平台 (Hudson) 自动增加 C# 程序集版本?

获取 WPF 的程序集版本

使用星号时是啥导致程序集版本增加?

混合模式程序集是针对运行时的“v2.0.50727”版本构建的

如何在 IronPython 2.7 中引用针对运行时版本“v2.0.xxx”构建的程序集?