[英]Using VSTS as PowerShell Gallery in Deployments
我在我的 VSTS 项目中有一个 PowerShell 模块的提要,我将它用作私人画廊,基于这篇文章: https : //roadtoalm.com/2017/05/02/using-vsts-package-management-as- a-private-powershell-gallery/
当我们在机器上运行它时,一切都很好。 我需要这些模块作为发布过程的一部分,所以第一个任务是注册这个 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 添加到 Register-PSRepository 但这没有帮助
我偶尔会看到“Register-PackageSource : The property 'Values' cannot be found on this object. 请验证该属性是否存在。” 当当前没有为“PowerShellGet”包提供程序注册的包源时,尝试从 PowerShellGet 模块运行“Register-PSRepository”命令(或从依赖 PackageManagement 模块运行“Register-PackageSource”命令)时出错默认“PSGallery”)。
当“%USERPROFILE%\\AppData\\Local\\Microsoft\\Windows\\PowerShell\\PowerShellGet\\PSRepositories.xml”中的当前用户配置文件下存在空文件时,似乎会发生这种情况。 我不确定是什么导致创建该空文件,但在删除它之前,即使是“Register-PSRepository -Default”命令也不会成功。
删除文件确实解决了错误,并允许再次注册 PowerShellGet 包源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.