Использование VSTS в качестве галереи PowerShell в развертываниях - PullRequest
1 голос
/ 06 мая 2019

У меня есть канал для модулей PowerShell в моем проекте VSTS, и я использую его как частную галерею на основе этой статьи: https://roadtoalm.com/2017/05/02/using-vsts-package-management-as-a-private-powershell-gallery/

Все отлично работает, когда мы запускаем это на машине. Мне нужны эти модули как часть процесса выпуска, поэтому первая задача - зарегистрировать этот репозиторий, если он не существует, а затем загрузить и установить последнюю версию каждого модуля. Соответствующая часть моего сценария:

Install-PackageProvider -Name NuGet -Confirm:$false -RequiredVersion 2.8.5.208
Get-PSRepository | Where-Object {$_.Name -eq "MyPrivateFeed" -or $_.SourceLocation -eq "https://myproject.pkgs.visualstudio.com/_packaging/MyPrivateFeed/nuget/v2"} | Unregister-PSRepository
Register-PSRepository -Name "MyPrivateFeed" -SourceLocation "https://myproject.pkgs.visualstudio.com/_packaging/MyPrivateFeed/nuget/v2" -InstallationPolicy Trusted
$PAT = $(System.AccessToken) | ConvertTo-SecureString -AsPlainText -Force
$VSTSCredentials = New-Object -TypeName PScredential("dummy", $PAT)
Find-Module -Name * -Repository MyPrivateFeed -Credential $VSTSCredentials | Install-Module -Credential $VSTSCredentials

Задача PowerShell в выпуске завершается с ошибкой:

WARNING: Unable to find module repositories.
PackageManagement\Register-PackageSource : The property 'Values' cannot be 
found on this object. Verify that the property exists.
At C:\Program 
Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:4173 
char:17
+ ...     $null = PackageManagement\Register-PackageSource @PSBoundParamete ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Microsoft.Power...erPackageSource 
   :RegisterPackageSource) [Register-PackageSource], Exception
    + FullyQualifiedErrorId : PropertyNotFoundStrict,Microsoft.PowerShell.Pack 
   ageManagement.Cmdlets.RegisterPackageSource 

Тот же самый скрипт работает на той же машине, когда я запускаю его на ISE / Console (с заменой токена на фактический PAT, конечно) Кто-нибудь знает, что здесь происходит?

Я пытался добавить -PackageManagementProvider NuGet в Register-PSRepository, но это не помогло

...