2016-11-08 19:02:59 -08:00

27 lines
947 B
PowerShell

[cmdletbinding()]
param([string]$targetBinary, [string]$installedDir, [string]$tlogFile)
function resolve($targetBinary) {
$targetBinaryPath = Resolve-Path $targetBinary
$targetBinaryDir = Split-Path $targetBinaryPath -parent
$a = $(dumpbin /DEPENDENTS $targetBinary | ? { $_ -match "^ [^ ].*\.dll" } | % { $_ -replace "^ ","" })
$a | % {
if (Test-Path "$installedDir\$_") {
if (Test-Path "$targetBinaryDir\$_") {
Write-Verbose "$_ is already present"
}
else {
Copy-Item $installedDir\$_ $targetBinaryDir
Write-Verbose "Copying $installedDir\$_ -> $_"
}
"$targetBinaryDir\$_"
if ($tlogFile) { Add-Content $tlogFile "$targetBinaryDir\$_" }
resolve("$targetBinaryDir\$_")
} else {
Write-Verbose "$installedDir\$_ not found"
}
}
}
resolve($targetBinary)