Set-Location versus SetCurrentDirectory
Qual é a diferença no Powershell entre
Set-Location "$env:ProgramFiles\My App\"
e
[System.IO.Directory]::SetCurrentDirectory("$env:ProgramFiles\My App\")
O motivo para perguntar é que recentemente tive um script que usavaAdd-Type -Path XXX
para adicionar uma referência a uma montagem. O assembly dependia de várias DLLs (algumas possivelmente vinculadas no tempo de execução, não no tempo de carregamento) localizadas na mesma pasta que o assembly.
Por isso, pensei em mudar o diretório para a pasta, para ajudar a montagem a encontrar todos os arquivos necessários. Quando mudei de diretório usandoSet-Location
Eu recebi um erro (que era específico do assembly) reclamando que não foi possível encontrar todas as DLLs. UsandoSetCurrentDirectory
trabalhou no entanto.
Portanto, os dois comandos parecem estar fazendo coisas diferentes. Eu esperava que eles fossem iguais.