我在构建过程中使用 Visual Studio Team Services (VSTS) 托管的构建代理。我的构建主要依赖于“PowerShell”步骤,该步骤调用我在 git 中的脚本。在此脚本中,我想使用 PowerShellGet 管理 PowerShell 模块。例如,我希望能够安装pscx https://www.powershellgallery.com/packages/Pscx/3.2.1.0只需运行
Install-Module -Name pscx
不幸的是,托管代理使用 PowerShell 4,并且他们没有PowerShellGet
模块已安装。结果,Install-Module
功能不可用。
有人对在 VSTS 托管代理上使用 PowerShellGet 模块有任何建议吗?请注意,由于我在这台计算机上没有管理员权限,因此无法安装用于安装 PowerShellGet for PowerShell 4 的 msi。
为了能够使用 PowerShellGet,需要两个 PowerShell 模块:
这些可以通过 PowerShell 5 开箱即用或通过 PowerShell Gallery 上提供的 msi 安装程序使用。
您可以简单地将它们添加到 git 存储库中(例如:在名为的文件夹中),而不是通过 msi 部署这些模块PsModules
)。您将能够在安装了 PS5 或 msi 的计算机上使用这些模块。他们通常在C:\Program Files\WindowsPowerShell\Modules
folder.
然后,添加PsModules
文件夹到您的 PSModulePath 环境变量。从这里开始,可以使用 PowerShellGet,如下所示:
$env:PSModulePath = "$env:BUILD_SOURCESDIRECTORY\PsModules;$env:PSModulePath"
Import-Module PowerShellGet
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -Scope currentuser
Save-Module pscx -path "$env:BUILD_SOURCESDIRECTORY\PsModules"
import-module pscx
Write-Host '************************'
Get-Command -module pscx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)