Public/Nuget/Invoke-PaketAdd.ps1
function Invoke-PaketAdd { [CmdletBinding()] param ( [parameter(Mandatory)] [string]$Id, [parameter(Mandatory)] [string]$Version, [string]$ProjectPath, [switch]$Force, [string]$Path = "." ) begin { } process { $paketExe = (Get-PaketPath $path) if ($paketExe) { $forceArgs = @(); if ($Force) { $forceArgs = "--no-install", "--no-resolve" } $add = ($ProjectPath -and !(Invoke-PaketShowInstalled -project $ProjectPath | Where-Object { $_.Id -eq $id } )) if ($add) { & $paketExe add $Id --project $ProjectPath --version $Version @forceArgs } else { $depFile = "$((Get-Item $paketExe).DirectoryName)\..\paket.dependencies" $dependecies = Get-Content $depFile -Raw $regex = [regex] "(nuget $Id) (.*)" $result = $regex.Replace($dependecies, "`$1 $Version") Set-Content $depFile $result.Trim() if ($ProjectPath) { $packagesConfig = "$(Get-Item $ProjectPath).DirectoryName\packages.config" if (Test-Path $packagesConfig) { $c = Get-Content $packagesConfig $regex = [regex] '(.*)id="DevExpress(.*)version="([^"]*)' $result = $regex.Replace($c, "`$1id=`"DevExpress`$2version=`"$Version") Set-Content $packagesConfig $result } } } } } end { } } |