Public/NugetPackageManagerFunctions.ps1

function Update-ProjectPackage {
    [CmdletBinding()]
    param(
        [parameter(ValueFromPipeline, Mandatory, ParameterSetName = "VSPkgManager")]
        [System.__ComObject]$Project, 
        [parameter(ValueFromPipeline, Mandatory, ParameterSetName = "Path")]
        [string]$Path,
        [string]$Filter, 
        [string]$Version
    )
    
    begin {
        if ($PSCmdlet.ParameterSetName -eq "VSPkgManager") {
            $Path = (Get-Item $Project).DirectoryName
        }
    }
    
    process {
        Get-ChildItem $Path packages.config -Recurse|ForEach-Object {
            $packageItem = $_
            [xml]$config = Get-Content $packageItem.FullName
            Write-Verbose "Checking $($packageItem.FullName)"
            $config.packages.package|where {!$filter -bor $_.Id -like "*$filter*"}|ForEach-Object {
                Write-Verbose "Updating $($_.Id)"
                Update-NugetPackages -sourcePath ($packageItem.DirectoryName) -filter $_.Id 
            }
        }
    }
    
    end {
    }
}

function Uninstall-ProjectAllPackages($packageFilter) {
    
    while ((Get-Project | Get-Package | Where-Object {
                $_.id.Contains($packageFilter)
            } ).Length -gt 0) { 
        Get-Project | Get-Package | Where-Object {
            $_.id.Contains($packageFilter)
        } | Uninstall-Package 
    }
    
}
function Uninstall-ProjectXAFPackages {
    Uninstall-ProjectAllPackages Xpand.XAF.
}