在部署中使用VST作为PowerShell库

在部署中使用VST作为PowerShell库,powershell,azure-devops,Powershell,Azure Devops,在我的VSTS项目中,我有一个PowerShell模块的提要,根据本文,我将其用作私人画廊: 当我们在机器上运行时,一切都很好。 我需要这些模块作为发布过程的一部分,因此第一个任务是注册这个repo(如果它不存在),然后下载并安装每个模块的最新版本。 我的脚本的相关部分是: Install-PackageProvider -Name NuGet -Confirm:$false -RequiredVersion 2.8.5.208 Get-PSRepository | Where-Object

在我的VSTS项目中,我有一个PowerShell模块的提要,根据本文,我将其用作私人画廊:

当我们在机器上运行时,一切都很好。 我需要这些模块作为发布过程的一部分,因此第一个任务是注册这个repo(如果它不存在),然后下载并安装每个模块的最新版本。 我的脚本的相关部分是:

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以注册PSRepository,但没有任何帮助

我偶尔会看到“Register PackageSource:在此对象上找不到属性“Values”。请验证该属性是否存在。尝试从PowerShellGet模块(或当前没有为“PowerShellGet”包提供程序(甚至不是默认的“PSGallery”)注册的包源时,从从属PackageManagement模块发出“Register PackageSource”命令)

当当前用户的配置文件“%USERPROFILE%\AppData\Local\Microsoft\Windows\PowerShell\PowerShellGet\PSRepositories.xml”下存在空文件时,可能会发生这种情况。我不确定创建该空文件的原因,但在删除该文件之前,甚至“Register PSRepository-Default”命令都不会成功

删除该文件可解决此错误,并允许再次注册PowerShellGet包源。

我偶尔会看到“Register PackageSource:在此对象上找不到属性“Values”。验证该属性是否存在。当当前没有为“PowerShellGet”包提供程序(甚至不是默认的“PSGallery”)注册包源时,尝试从PowerShellGet模块运行“注册PSRepository”命令(或从从属PackageManagement模块运行“注册PackageSource”命令)时出错

当当前用户的配置文件“%USERPROFILE%\AppData\Local\Microsoft\Windows\PowerShell\PowerShellGet\PSRepositories.xml”下存在空文件时,可能会发生这种情况。我不确定创建该空文件的原因,但在删除该文件之前,甚至“Register PSRepository-Default”命令都不会成功

删除该文件可解决此错误,并允许再次注册PowerShellGet包源