Set-Location против SetCurrentDirectory
Какая разница в Powershell между
Set-Location "$env:ProgramFiles\My App\"
а также
[System.IO.Directory]::SetCurrentDirectory("$env:ProgramFiles\My App\")
Причина для того, чтобы спросить, что у меня недавно был сценарий, который использовалAdd-Type -Path XXX
добавить ссылку на сборку. Сборка зависела от ряда библиотек DLL (некоторые из которых могут быть связаны во время выполнения, а не во время загрузки), расположенных в той же папке, что и сборка.
Поэтому я решил изменить каталог на папку, чтобы помочь сборке найти все необходимые файлы. Когда я изменил каталог с помощьюSet-Location
Я получил ошибку (которая была специфична для сборки), жалуясь, что не может найти все библиотеки DLL. С помощьюSetCurrentDirectory
работал однако.
Поэтому две команды, кажется, делают разные вещи. Я бы ожидал, что они будут такими же.