2
GACに既に存在する特定のパスからすべてのdllを削除する方法を知っているPowerShellのGurusはありますか?PowerShellを使用して既にGACに存在する特定のパスからすべてのDLLを削除するにはどうすればよいですか?
GACに既に存在する特定のパスからすべてのdllを削除する方法を知っているPowerShellのGurusはありますか?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