2
GAC에 이미있는 특정 경로에서 모든 DLL을 삭제하는 방법을 알고있는 PowerShell 전문가가 있습니까?PowerShell을 사용하여 GAC에 이미 존재하는 주어진 경로에서 모든 DLL을 삭제하는 방법은 무엇입니까?
GAC에 이미있는 특정 경로에서 모든 DLL을 삭제하는 방법을 알고있는 PowerShell 전문가가 있습니까?PowerShell을 사용하여 GAC에 이미 존재하는 주어진 경로에서 모든 DLL을 삭제하는 방법은 무엇입니까?
당신은 어셈블리와 함께 이름으로 GAC에 이미 있는지 여부를 확인할 수 있습니다 :
$AssemblyName = [System.Reflection.AssemblyName]::GetAssemblyName("C:\Path\to\assembly.dll")
$IsInGAC = [System.Reflection.Assembly]::ReflectionOnlyLoad($AssemblyName).GlobalAssemblyCache
당신은 귀하의 의견 어셈블리 필터링 테스트 함수에 그 포장 수 :
function Test-GACPresence {
param(
[Parameter(Mandatory=$true,ParameterSetName='Path')]
[string]$Path,
[Parameter(Mandatory=$true,ParameterSetName='LiteralPath',ValueFromPipelineByPropertyName=$true)]
[Alias('PsPath')]
[string]$LiteralPath
)
$LiteralPath = if($PSCmdlet.ParameterSetName -eq 'Path'){
(Resolve-Path $Path).ProviderPath
} else {
(Resolve-Path $LiteralPath).ProviderPath
}
try{
return [System.Reflection.Assembly]::ReflectionOnlyLoad([System.Reflection.AssemblyName]::GetAssemblyName($LiteralPath)).GlobalAssemblyCache
}
catch{
return $false
}
}
$ExistsInGAC = Get-ChildItem "path\to\test" -Filter *.dll -Recurse |?{$_|Test-GACPresence}
$ExistsInGAC |Remove-Item
을 오타가 있습니까 결국? 아마 그것이 항목이 아니라 원격 항목이어야합니다. –
@Mathias R. Jessen이 작업은 훌륭했습니다. 그러나 어셈블리 파일 이름이 아니라 어셈블리 파일 버전을 고려해야한다고 생각하지 않습니다. 어셈블리 파일 버전을 확인하기위한 지침을 제공 하시겠습니까? – PatrickNolan
@ MathiasR.Jessen을 반복하면 위의 참조가 제대로 작동하는지 확실하지 않습니다. – PatrickNolan