$directory = "bin\x86\Debug" $references = $null $references= Get-ChildItem $directory -Filter *.dll -rec | % { try { $loaded = [reflection.assembly]::LoadFrom($_.FullName) $name = $loaded.ManifestModule $loaded.GetReferencedAssemblies() | % { $toAdd='' | select Who, FullName, Name, Version $toAdd.Who, $toAdd.FullName, $toAdd.Name, $toAdd.Version = ` $loaded,$_.FullName,$_.Name,$_.Version $toAdd } } catch [Exception] { Write-Host $_.Exception.Message } } $hash = $references | Group-Object Name, Version -AsString -AsHashTable $hash.GetEnumerator() | Sort-Object Name | % { $key = $_.Key.ToString().Trim() $value = $_.Value Write-Host $key $s = [string]::join([Environment]::NewLine + ' * ', ($value | Select-Object -ExpandProperty Who | Get-Unique | Sort-Object Who)) Write-Host ' *', $s }