Padded Version.ToString() extension
version.ToString(fieldCount) already returns the required amount of numbers. The first character of a variable is usually lower case. Parts contains the numbers in an array, you just need to modify that array and use the String.Join to get your number back. If you pass fieldCount of 0, you don't need to split anything. 

&lt;Extension()&gt; Public Function ToString(version As Version, fieldCount As Integer, fieldPadding As Integer) As String

    If fieldCount = 0 Then
        Return String.Empty
    End If

    Dim parts As String() = version.ToString(fieldCount).Split("."c)

    For i As Integer = 0 To parts.Count - 1
        parts(i) = parts(i).PadLeft(fieldPadding, "0"c)
    Next

    Return String.Join(".", parts)
End Function


An alternative would be to look at the code and do your own instead of splitting.