Несовместимые ответы из PowerShell Gallery при получении зависимостей модуля - PullRequest
0 голосов
/ 07 сентября 2018

Я не совсем уверен, что это правильное место, чтобы оставить этот вопрос, но здесь он идет.

Поэтому я пытаюсь импортировать модули PowerShell в учетную запись Azure Automation с помощью сценариев PowerShell. Для этого я вызываю метод отдыха в галерее PowerShell и получаю сведения о модуле. Вот пример кода.

$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 голосов
/ 08 сентября 2018

PS Галерея следует нотации зависимостей NuGet: https://docs.microsoft.com/en-us/nuget/reference/package-versioning#version-ranges-and-wildcards

...