2016-04-30 8 views
2

Ich verwende von Visual Studio Team Services (VSTS) gehostete Buildagenten in meinem Buildprozess. Meine Builds basieren hauptsächlich auf dem 'PowerShell' Schritt, der ein Skript aufruft, das ich in git habe. In diesem Skript möchte ich PowerShell-Module mit PowerShellGet verwalten. Zum Beispiel würde ich pscx können, wie einfach die Installation vonVerwenden von PowerShellGet auf VSTS-gehosteten Agenten

Install-Module -Name pscx 

Leider laufen, gehosteten verwenden Agenten Powershell 4 und sie haben nicht die PowerShellGet Modul installiert. Daher ist die Funktion Install-Module nicht verfügbar.

Jeder hat einen Vorschlag, das PowerShellGet-Modul auf VSTS-gehosteten Agenten zu verwenden? Beachten Sie, dass da ich nicht über Administratorrechte auf diesem Computer haben, kann ich nicht die msi installieren, die PowerShellGet für Powershell 4.

Antwort

4

installiert PowerShellGet Um zu verwenden, zwei Powershell-Module sind erforderlich:

  • PowerShellGet
  • PackageManagement

Diese aus der Box sind mit Powershell-5 oder über das mSI-Installationsprogramm auf der Powershell-Gallery.

Anstatt diese Module über die MSI bereitzustellen, können Sie sie einfach zu Ihrem Git-Repository hinzufügen (Beispiel: in einem Ordner mit dem Namen PsModules). Sie können diese Module auf einer Maschine, auf der entweder PS5 oder MSI installiert ist, in die Hand bekommen. Sie befinden sich normalerweise im Ordner C:\Program Files\WindowsPowerShell\Modules.

Fügen Sie dann die Ordner PsModules zu Ihrer PSModulePath-Umgebungsvariablen hinzu. Ausgehend von dort ist es möglich, PowerShellGet wie folgt zu verwenden:

$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 
Verwandte Themen