Установить текущий рабочий каталог при выходе (.NET Core) - PullRequest
1 голос
/ 18 апреля 2019

Я бы хотел, чтобы мое приложение установило текущий рабочий каталог после запуска моего приложения, что означает, например,

$ pwd
/my/directory
$ dotnet MyApp.dll
$ pwd
/another/place/somewhere

Как я могу сделать это в C #, используя .NET Core кросс-платформенным способом ?

Я посмотрел на Environment.CurrentDirectory и Directory.SetCurrentDirectory, но для них обоих рабочий каталог сбрасывается в исходное состояние при выходе из приложения, как указано в документации для Directory.SetCurrentDirectory.

Когда приложение завершает работу, рабочий каталог восстанавливается в исходное местоположение (каталог, в котором был запущен процесс).

https://docs.microsoft.com/en-us/dotnet/api/system.io.directory.setcurrentdirectory?view=netframework-4.7.2#remarks

1 Ответ

0 голосов
/ 18 апреля 2019

Вы не можете.

Текущий рабочий каталог является свойством каждого процесса.

Чтобы изменить его в терминале, вам нужно найти способ, чтобы заставить терминал делатьЭто.Программа, запускаемая терминалом, может изменять свой текущий каталог, но не каталог вызывающего терминала.

Именно поэтому cd является встроенной в оболочку.Если это была внешняя программа, она не смогла бы изменить рабочий каталог оболочки / терминала.

...