无法将值转换为“System.Version”类型

问题描述 投票:0回答:1

我无法将存储在变量中的格式正确的字符串转换为版本类型。问题一定出在变量上,因为如果我手动提供值,它就可以正常工作,但我不知道它可能出了什么问题。我是 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")

知道我的变量有什么问题吗?我无法更改它,因为它是按原样提供给我的。

谢谢!

powershell type-conversion system.version
1个回答
2
投票

我也遇到了同样的问题,但是是在我的 Azure DevOps 管道(PowerShell 任务)中。

我通过在 [Version]$someVariable 周围放置额外的括号来解决这个问题,所以它会像: ([Version]$someVariable)

© www.soinside.com 2019 - 2024. All rights reserved.