ayseff
6/22/2016 - 11:17 PM

Remove Duplicates From packages.config

Remove Duplicates From packages.config

$path = "<some path>"

cls

$files = gci -Recurse -Path $path -Include packages.config 

foreach($file in $files) {
    [xml]$doc = $file | Get-Content

    $dups = $doc.packages.package | Group-Object -Property id | Where-Object Count -GT 1 | Select Name, Count 

    foreach($dup in $dups) {
        for($i=1; $i -le $dup.Count -1; $i++) {
            $name = $dup.Name
            $xpath = "//package[@id='$name']"
            $node = $doc.SelectNodes($xpath).Item(1)
            $node.ParentNode.RemoveChild($node)
        }
    }
    $doc.Save($file.FullName)
}