Set-Location versus SetCurrentDirectory

Was ist der Unterschied in Powershell zwischen

Set-Location "$env:ProgramFiles\My App\"

un

[System.IO.Directory]::SetCurrentDirectory("$env:ProgramFiles\My App\")

Der Grund für die Frage ist, dass ich vor kurzem ein Skript hatte, das @ verwendAdd-Type -Path XXX, um einen Verweis auf eine Assembly hinzuzufügen. Die Assembly hing von einer Reihe von DLLs ab (von denen einige möglicherweise zur Laufzeit und nicht zur Ladezeit verknüpft sind), die sich im selben Ordner wie die Assembly befinden.

So dachte ich, ich würde das Verzeichnis in den Ordner ändern, damit die Assembly alle erforderlichen Dateien findet. Als ich mit @ das Verzeichnis wechselSet-Location Ich habe eine Fehlermeldung erhalten (eine, die spezifisch für die Assembly war), in der beanstandet wurde, dass nicht alle DLLs gefunden wurden. @ VerwendSetCurrentDirectory hat aber funktioniert.

Daher scheinen die beiden Befehle verschiedene Dinge zu tun. Ich hätte erwartet, dass sie gleich sind.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage