param ([string][parameter(mandatory=$true)]$path)
function GetReferencedAssemblies([reflection.assembly][parameter(mandatory=$true)]$top)
{
$script:found += $top.Location
$ref = $top.getreferencedassemblies()
$ref | % {
$name = $_.name
$loaded = $null
try
{
$loaded = [reflection.assembly]::load($_)
}
catch
{
$loaded = [reflection.assembly]::loadfrom((resolve-path ($name + '.dll')))
}
if($script:found -notcontains $loaded.Location -and -not $loaded.GlobalAssemblyCache)
{
GetReferencedAssemblies $loaded
}
}
}
$path = resolve-path $path -ErrorAction stop
pushd (split-path $path)
try
{
$found = @()
$top = [reflection.assembly]::loadfrom($path)
GetReferencedAssemblies $top
$found
}
finally
{
popd
}
Friday, November 19, 2010
PowerShell script to get a list of all assemblies required by a .NET executable
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment