У меня есть два консольных исполняемых файла, каждый из которых использует одну и ту же библиотеку.Один exe-файл написан с использованием .Net Core, а другой - с помощью Windows Desktop Console.В библиотеке, написанной с использованием .Net Standard, у меня есть общий код, включающий метод проверки аргумента командной строки, который может иметь расположение каталога в виде строки.В свойствах проекта на обоих у меня есть Debug 'Start option > Command line argument' "%HOMEPATH%\Documents\'
.Когда программа .Net Core использует библиотеку .Net Standard, она находит папку, но когда программа Windows Desktop использует ту же библиотеку, каталог не найден!Почему?
Значения аргументов командной строки параметров запуска отладки проекта: "%HOMEPATH%\Documents"
Код из стандартной библиотеки .Net:
public static void ValidateWorkingDirectory(ref string workingDirectory)
{
if (!Directory.Exists(workingDirectory))
{
Log.Warning("The working directory argument is not valid! Arg: {0}. Defaulting to current running directory: {1}", workingDirectory, Environment.CurrentDirectory);
workingDirectory = Environment.CurrentDirectory;
}
}
Интересно, что это похоже, если япоместите %HOMEPATH%\Documents
в свойства проекта / Debug / рабочий каталог.В проекте .Net Core это нормально, но на консоли рабочего стола Windows он показывает диалоговое окно «Рабочий каталог не существует».
Ваша помощь очень важна.