Esta versión extendida de la secuencia de comandos PS de Danny Tuppeny muestra referencias externas y del proyecto:
Function Get-ProjectReferences($rootPath)
{
$projectFiles = Get-ChildItem $rootPath -Filter *.csproj -Recurse
$ns = @{ defaultNamespace = "http://schemas.microsoft.com/developer/msbuild/2003" }
$projectFiles | ForEach-Object {
$projectFile = $_ | Select-Object -ExpandProperty FullName
$projectName = $_ | Select-Object -ExpandProperty BaseName
$projectXml = [xml](Get-Content $projectFile)
$projectReferences = $projectXml | Select-Xml '//defaultNamespace:ProjectReference/defaultNamespace:Name' -Namespace $ns | Select-Object -ExpandProperty Node | Select-Object -ExpandProperty "#text"
$projectReferences | ForEach-Object {
"PR:[" + $projectName + "]:[" + $_ + "]"
}
}
$projectFiles | ForEach-Object {
$projectFile = $_ | Select-Object -ExpandProperty FullName
$projectName = $_ | Select-Object -ExpandProperty BaseName
$projectXml = [xml](Get-Content $projectFile)
$externalReferences = $projectXml | Select-Xml '//defaultNamespace:Reference/@Include' -Namespace $ns
$externalReferences | ForEach-Object {
"ER:[" + $projectName + "]:[" + $_ + "]"
}
}
}
Get-ProjectReferences "C:\projects" | Out-File "C:\temp\References.txt"
Le dará un archivo separado por dos puntos que se puede abrir y analizar en Excel.