При использовании команд. NET для запуска моего консольного приложения, которое хранится на сетевом диске, он видит рабочий каталог как место, откуда оно вызывается, а не путь к проекту.
dotnet run --project "\\network.drive\path\example\project"
Я получаю вывод следующим образом:
WORKING DIRECTORY: C:\Windows\system32
Current Environment: DEV
Current Root URL: <API_URL>
Current Excel File:
Unhandled Exception: System.ArgumentNullException: Value cannot be null.
Parameter name: fileName
at System.IO.FileInfo..ctor(String originalPath, String fullPath, String fileName, Boolean isNormalized)
at System.IO.FileInfo..ctor(String fileName)
at MyProject.Reader.ReadAgentData(Int32 sheetIndex) in \\network.drive\path\example\project\Reader.cs:line 68
at MyProject.Program.Main(String[] args) in \\network.drive\path\example\project\Program.cs:line 119
Ошибка - переменная файла Excel, являющаяся пустой строкой. Поскольку рабочий каталог - это не путь проекта, а C:\Windows\system32
, он не может найти файл appsettings. json, из которого извлекается информация.
Как ни странно, использование команды dotnet watch --project "\\network.drive\path\example\project" run
вызывает процесс запускается правильно, он имеет правильный рабочий каталог и считывает файл appsettings. json без проблем, но затем он, очевидно, должен ждать изменения файла (цель наблюдения) ..
Как можно ли заставить мое приложение распознавать рабочий каталог как root папки проекта при использовании dotnet run --project
?? (Для ясности, я НЕ хочу использовать часы, если не смогу их автоматически завершить)