2016-04-30 12 views
2

ビルドプロセスでVisual Studio Team Services(VSTS)ホストのビルドエージェントを使用しています。私のビルドは、ほとんどがgitのスクリプトを呼び出す 'PowerShell'ステップに依存しています。このスクリプトの中からPowerShellGetを使ってPowerShellモジュールを管理したいと思います。例えば、私は残念ながらVSTSホストエージェントでPowerShellGetを使用する

Install-Module -Name pscx 

を実行するだけでpscxをインストールできるようにしたいと思い、エージェントはPowerShellの4を使用して、彼らはPowerShellGetモジュールがインストールされていないホストされています。その結果、Install-Module機能は使用できません。

誰かがVSTSホストエージェントでPowerShellGetモジュールを使用するよう提案していますか?私はこのマシン上で管理者権限を持っていないので、私はPowerShellGetを使用できるようにするためにPowerShellの4のために

答えて

4

をPowerShellGetをインストールMSIをインストールできないことに注意してください、2つのPowerShellのモジュールが必要とされています

  • PowerShellGet
  • PackageManagement

これらは、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 
関連する問題