So erhalten Sie den Pfad zur ausführbaren Datei einer Konsolenanwendung in .NET
Hallo zusammen! Ich schreibe eine Konsolenanwendung in C# (.NET 6) und muss den Pfad zum Ordner erhalten, in dem meine .exe-Datei liegt. Ich habe mehrere Methoden ausprobiert, aber die Ergebnisse verwirren mich.
Zum Beispiel starte ich die Anwendung aus dem Ordner `C:\MyApp`, möchte aber, dass sie die Datei `settings.json` aus demselben Verzeichnis liest. Ich habe es so versucht:
```csharp
string path = Environment.CurrentDirectory;
Console.WriteLine(path);
```
Aber wenn ich die Anwendung von der Kommandozeile aus starte, während ich mich in einem anderen Ordner befinde, wird nicht `C:\MyApp` ausgegeben, sondern das aktuelle Arbeitsverzeichnis. Das ist falsch.
Ich habe auch versucht:
```csharp
string path = Assembly.GetExecutingAssembly().Location;
Console.WriteLine(path);
```
Aber das gibt den Pfad mit dem Dateinamen zurück (z.B. `C:\MyApp\MyApp.exe`), während ich nur den Ordner benötige. Außerdem habe ich gehört, dass diese Methode in manchen Fällen aufgrund von Shadow Copying den Pfad zu einem temporären Ordner zurückgeben kann.
Kurz gesagt, ich bin völlig verwirrt. Wie erhalte ich in .NET zuverlässig den Pfad zum Anwendungsordner, der funktioniert?