版本号是1.13> 1.2?

时间:2009-06-02 22:13:19

标签: .net assemblies versioning

我从.NET的角度知道,版本为1.13的程序集被认为是比版本1.2更新的版本,因为版本中的每个数字都是单独计算的。然而,从数值的观点来看,1.13是<比1.2。

问题归结为为客户发布更新时的可读性。从.0到.9它们都是一样的,但是在.10你必须区分。那么,你是否将点数发布的数量限制为9,然后在达到.9?

时增加主要版本

请不要假设最终用户了解典型的开发版本编号方案。

更新

  

不要把它想象成十进制   数。 (。)是之间的分隔符   不同的领域。什么每个领域   意味着(例如):

 MajorRelease.MinorRelease.BuildNumber

绝对!当我查看版本号时,我看到了它。但这不是你的普通乔读取文字“1.13”的方式。我想作为程序员,很容易将我们的理解投射到我们的用户身上。这就是为什么我对数字混淆经验的回应感兴趣。这可能不是一个真正的问题,或者它可能只是被忽略了。

更新2:响应“提供文档”或“向用户解释”类型的解决方案:它们不起作用! :)如果你必须向用户解释版本号,你已经使它变得比它需要的更复杂。虽然一项技术的主要受众可能是许多公司的开发人员,但软件的实际采购和管理由没有开发或技术背景的秘书和文职人员处理。如果他们的经理问他们“是否有可用的新版本”,他们看到“1.11”,他们可能不会将其注册为新版本。

11 个答案:

答案 0 :(得分:16)

如果版本号看起来像数字小数一样,版本编号可能会令人困惑,但(。)实际上是分隔符之间的独立性字段应该是这样的:

<强> MajorRelease.MinorRelease.BuildNumber

每个号码都与其余号码无关,因此版本1.12.99 后面可能会跟着版本1.12.100 (例如)。所以你最终得到:

  

在第1版中,次要版本12 ......   构建99后,构建100。

所以在你的例子中(v1.13&gt; v1.2):在发布“2”之后,次要版本“13”将会出现

答案 1 :(得分:7)

这是标准做法,任何关注版本“数字”的人都应该真正意识到这一点。可能存在任何误解的唯一原因是,如果您的版本“数字”只有一个点,例如“1.13”,在这种情况下它可能可能与十进制数字混淆(由不知情的读者),这是不幸的,因为它们代表了完全不同的东西,尽管使用相同的符号。你使用修订号吗?如果是这样,这使得版本更加清晰,不是小数,例如“1.13.2”。无论如何,从设计的角度来看,我倾向于推荐这种做法。

侧点:如果要以编程方式比较程序集的版本,可以使用Version类,这会使比较运算符重载,这样您只需评估versionA > versionB就可以轻松检查哪些更新。

答案 2 :(得分:5)

我更喜欢始终零填充版本号以避免混淆并允许它们在“版本无意识”应用程序中正确排序。在这种情况下,我将编号为1.13&gt; 1.02

优点是它在数字和字母顺序上都能正确排序。

答案 3 :(得分:5)

1.13&gt; 1.2

如果您认为它可能会让客户感到困惑,请回避问题 - 从1.10开始编号:)

答案 4 :(得分:3)

例如:3.1,95,98,Me,XP,Vista,7

只要想出新的东西,客户就不会像你想象的那样担心它。解释新功能,而不是版本号。

答案 5 :(得分:2)

这个问题也困扰了我一段时间。 “合理”字符串排序的零填充似乎是一个好主意(我希望更多的源代码可以跟随这一点;否则很难发现最新的几十个版本)。

我最近注意到开发人员将“1.13”称为“一点十三”,而不是“一点一三”,这是我认为我会采用的做法。它清楚地表明版本号是一串数字,而不是小数。也许我们应该先使用破折号或斜线来代替点作为分隔符,以使书面形式不那么模糊。

如果您确实将它们视为小数,那么当您接近新的主要版本时,您最终可能会得到类似“1.999999”的版本号! (我记得BASIC方言的行编号也有类似的问题。)它也让我想起了Knuth的TeX和METAFONT的编号方案(分别向pi和e汇聚,我认为这很精彩:它表明该软件具有明确的目的应该趋向理想状态,而不是不断扩大。

答案 6 :(得分:0)

我只根据发布的重要性及其作为主要/次要版本的资格来增加不同的版本号。我想我并不太关心版本号的可读性。

答案 7 :(得分:0)

没有。在我见过的delopers的每个软件版本中,1.13&gt; 1.2

答案 8 :(得分:0)

  

然而,从数值的观点来看,1.13是&lt;比1.2。

我不这么认为。

  

那么,你是否将点数发布的数量限制为9,然后在达到.9时增加主要版本?

没有。我的数字进入了数十。对于临时版本,较大的项目进入数百个。

答案 9 :(得分:0)

我不认为版本号是一个数字编号,而是一个数字元素数组。因此,我总是发现1.13&gt; 1.2。我不会增加主要版本只是因为之前的小调是9并且有人可能会认为(即使我发现它不太可能)1.9比1.10晚。

答案 10 :(得分:0)

版本号只是为了让您了解正在使用的构建版本以及用户可以查看它们的版本。

你是如何做到的完全取决于你。

你可以做A.B.C或I.II.III或你想要的。

我尝试让用户理解简单。因为我个人并不关心它是怎么回事。

我有三层。 Major.Minor.Build

构建是可选的,对于经常更新的项目,我会在那里附上修订号以查看我们所处的位置。

主要和次要的数字是整数,因此13大于2但通常我们在次要修订中从未如此高,我们倾向于将次要版本批处理并将其推入1个主要版本。