比较两个产品/装配版本的最佳方法是什么

时间:2016-06-01 08:31:59

标签: vb.net string compare

我们假设产品的版本号为1.5.4537.56784。有很多关于如何在SO上检索它的例子,在大多数情况下(如果你只是想向最终用户显示信息),那么默认的字符串表示就可以了。

我现在发现自己想要将这个程序集号与另一个组件号进行比较(这次绝对存储为字符串,因为它在线文本文件中存储(但格式相同))以确定是否存储了版本号online与从执行程序集中检索的版本号相同,或者实际上更大。更重要的术语是重要的,不仅仅是不同的,而是积极的更大。

一个简单的字符串比较应该确定它们是否相同,但我认为它不会确定大于。那么我应该考虑采用什么类型来改变这些叮咬,以使其大于比较。或者我错过了字符串比较中显而易见的东西。

2 个答案:

答案 0 :(得分:2)

将您的值按.拆分为整数数组或列表,无论您喜欢哪个。然后对集合中的每个位置使用简单的If x > y比较。

Dim myAssemblyVersion = "1.5.4537.56784"
Dim theirAssemblyVersion = "1.5.4827.1"

Dim myIntegers = myAssemblyVersion.Split(".")
Dim theirIntegers = theirAssemblyVersion.Split(".")

Dim isTheirsgreater As Boolean = False
For i = 0 To myIntegers.Count - 1
    If theirIntegers(i) > myIntegers(i) Then
        isTheirsgreater = True
    End If
Next

答案 1 :(得分:2)

我想说比较版本的最佳方法是使用System.Version类提供的比较运算符。您可以使用在线文本文件中找到的字符串创建Version的新实例。然后,您可以使用GreaterThan运算符将其与应用程序的版本进行比较。

Dim textVer As String = "1.5.4537.56784"
Dim onlineVer As New Version(textVer)
Dim myVer As Version = Reflection.Assembly.GetExecutingAssembly.GetName.Version

If onlineVer > myVer Then
    'Version found online is greater than mine
End If