在 VSTS 托管代理上使用 PowerShellGet
Using PowerShellGet on VSTS hosted agents
我在构建过程中使用 Visual Studio Team Services (VSTS) 托管构建代理。我的构建主要依赖 'PowerShell' 步骤调用我在 git 中的脚本。在此脚本中,我想使用 PowerShellGet 管理 PowerShell 模块。例如,我希望能够通过 运行
简单地安装 pscx
Install-Module -Name pscx
遗憾的是,托管代理使用 PowerShell 4,它们没有安装 PowerShellGet
模块。因此,Install-Module
函数不可用。
有人对在 VSTS 托管代理上使用 PowerShellGet 模块有任何建议吗?请注意,由于我在这台机器上没有管理员权限,因此我无法安装为 PowerShell 4 安装 PowerShellGet 的 msi。
为了能够使用 PowerShellGet,需要两个 PowerShell 模块:
- PowerShellGet
- 包管理
这些可随 PowerShell 5 开箱即用或通过 PowerShell 库中提供的 msi 安装程序提供。
无需通过 msi 部署这些模块,您只需将它们添加到您的 git 存储库(例如:在名为 PsModules
的文件夹中)。您将能够在安装了 PS5 或 msi 的机器上使用这些模块。它们通常位于 C:\Program Files\WindowsPowerShell\Modules
文件夹中。
然后,将 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
我在构建过程中使用 Visual Studio Team Services (VSTS) 托管构建代理。我的构建主要依赖 'PowerShell' 步骤调用我在 git 中的脚本。在此脚本中,我想使用 PowerShellGet 管理 PowerShell 模块。例如,我希望能够通过 运行
简单地安装 pscxInstall-Module -Name pscx
遗憾的是,托管代理使用 PowerShell 4,它们没有安装 PowerShellGet
模块。因此,Install-Module
函数不可用。
有人对在 VSTS 托管代理上使用 PowerShellGet 模块有任何建议吗?请注意,由于我在这台机器上没有管理员权限,因此我无法安装为 PowerShell 4 安装 PowerShellGet 的 msi。
为了能够使用 PowerShellGet,需要两个 PowerShell 模块:
- PowerShellGet
- 包管理
这些可随 PowerShell 5 开箱即用或通过 PowerShell 库中提供的 msi 安装程序提供。
无需通过 msi 部署这些模块,您只需将它们添加到您的 git 存储库(例如:在名为 PsModules
的文件夹中)。您将能够在安装了 PS5 或 msi 的机器上使用这些模块。它们通常位于 C:\Program Files\WindowsPowerShell\Modules
文件夹中。
然后,将 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