检索模块依赖项时,PowerShell Gallery中的响应不一致

时间:2018-09-07 06:25:16

标签: powershell azure-automation

我不确定这是否是发布此问题的正确地点,但是就到这里了。

因此,我尝试使用PowerShell脚本将PowerShell模块导入Azure自动化帐户。为此,我对PowerShell库调用了Rest方法并获取模块详细信息。这是代码示例。

$Url = "https://www.powershellgallery.com/api/v2/Search()?`$filter=IsLatestVersion&searchTerm=%27$ModuleName%27&targetFramework=%27%27&includePrerelease=false&`$skip=0&`$top=40" 
    $SearchResult = (Invoke-RestMethod -Method Get -Uri $Url -UseBasicParsing) | Where-Object { $_.properties.title -eq $ModuleName }
    $moduleVersion = $SearchResult.properties.Version
...
$ModuleContentUrl = "https://www.powershellgallery.com/api/v2/package/$ModuleName/$moduleVersion"
...
$Dependencies = $SearchResult.properties.Dependencies
...
$Dependencies | ForEach-Object {
    if($_ -and $_.Length -gt 0) {
        $Parts = $_.Split(":")
        $DependencyName = $Parts[0]

        # BELOW LINE CAUSING INCONSISTENCY
        $DependencyVersion = $Parts[1].Trim("[").Trim("]").Split(",")[0]


        # SOME CUSTOM LOGIC HERE
    }
}

现在,我看到的不一致之处是依赖项列表在不同时间以不同的方式出现。以下是我目前看到的示例。请注意版本号是成批出现的,两个值具有相同的编号。

enter image description here

但是,我有时看到版本号不是这样,而是一个普通的字符串。如下所示:

modulename:moduleversion

为什么会有这种不一致?

谢谢!

1 个答案:

答案 0 :(得分:0)