С# – как получить путь к каталогу, где находится Program.cs в Windows, из Program.csC#

Место общения программистов C#
Anonymous
С# – как получить путь к каталогу, где находится Program.cs в Windows, из Program.cs

Сообщение Anonymous »

Я использовал .NET Core SDK (версия 2.1.301) для создания решения, создания консольного проекта и добавления проекта в решение в Windows.

Код: Выделить всё

dotnet new sln -o ConsoleSol
dotnet new console -o ConsoleSol/ConsoleApp
dotnet sln ConsoleSol/ConsoleSol.sln add ConsoleSol/ConsoleApp/ConsoleApp.csproj
Структура папок выглядит следующим образом:

Код: Выделить всё

ConsoleSol/
├── ConsoleApp
│   ├── bin
│   │   └── Debug
│   │       └── netcoreapp2.1
│   ├── ConsoleApp.csproj
│   ├── obj
│   │   ├── Debug
│   │   │   └── netcoreapp2.1
│   │   └── project.assets.json
│   └── Program.cs
└── ConsoleSol.sln
Я хочу получить путь к ConsoleSol/ConsoleApp без жесткого кодирования пути.
Причина, по которой я хочу это сделать, заключается в том, что я могу создать файл в этом каталоге.

Как я могу получить путь к ConsoleSol/ConsoleApp (т. е. путь, по которому существуют ConsoleApp.csproj и Progam.cs) из Program.cs?

Я пробовал следующее:

Код: Выделить всё

class Program
{
static void Main(string[] args)
{
var directory = Directory.GetCurrentDirectory();
Console.WriteLine(directory);
}
}
Но Directory.GetCurrentDirectory() возвращает путь к ConsoleSol/ConsoleApp/bin/Debug/netcoreapp2.1

ПРИМЕЧАНИЕ. Я не пытаюсь получить путь к .exe, который можно получить, вызвав System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location). Вместо этого я пытаюсь получить путь к Program.cs

Вернуться в «C#»