Como obter o caminho para o arquivo executável de um aplicativo console no .NET?
Olá a todos! Estou escrevendo um aplicativo console em C# (.NET 6) e preciso obter o caminho para a pasta onde meu arquivo .exe está localizado. Tentei várias maneiras, mas os resultados são confusos.
Por exemplo, executo o aplicativo a partir da pasta `C:\MyApp`, mas quero que ele leia o arquivo `settings.json` do mesmo diretório. Tentei assim:
```csharp
string path = Environment.CurrentDirectory;
Console.WriteLine(path);
```
Mas quando executo o aplicativo a partir da linha de comando, estando em outra pasta, ele exibe não `C:\MyApp`, mas o diretório de trabalho atual. Isso está errado.
Também tentei:
```csharp
string path = Assembly.GetExecutingAssembly().Location;
Console.WriteLine(path);
```
Mas isso retorna o caminho com o nome do arquivo (por exemplo, `C:\MyApp\MyApp.exe`), e eu preciso apenas da pasta. E também ouvi dizer que em alguns casos esse método pode retornar o caminho para uma pasta temporária devido ao shadow copying.
Resumindo, estou completamente confuso. Como obter corretamente um caminho confiável para a pasta do aplicativo no .NET, que funcione de forma consistente?