我无法将存储在变量中的格式正确的字符串转换为版本类型。问题一定出在变量上,因为如果我手动提供值,它就可以正常工作,但我不知道它可能出了什么问题。我是 PowerShell 新手,所以我不知道该去哪里查找。
这是我的变量:
Write-Host "$env:BUILD_BUILDNUMBER"
1.0.0.20
这真的是一根绳子吗?是的:
($env:BUILD_BUILDNUMBER).GetType().fullname
System.String
我们把它转换成一个版本:
[version]($env:BUILD_BUILDNUMBER)
Cannot convert value "1.0.0.20" to type "System.Version". Error: "Input string was not in a correct format."
手动尝试时效果很好:
[version]("1.0.0.20")
知道我的变量有什么问题吗?我无法更改它,因为它是按原样提供给我的。
谢谢!
我也遇到了同样的问题,但是是在我的 Azure DevOps 管道(PowerShell 任务)中。
我通过在 [Version]$someVariable 周围放置额外的括号来解决这个问题,所以它会像: ([Version]$someVariable)