Wie finde ich den Pfad der Anwendung in einer Konsolenanwendung?
Unter Windows-Formulare kann ich verwenden Application.StartupPath
um den aktuellen Pfad zu finden, aber das scheint in einer Konsolenanwendung nicht verfügbar zu sein.
Wie finde ich den Pfad der Anwendung in einer Konsolenanwendung?
Unter Windows-Formulare kann ich verwenden Application.StartupPath
um den aktuellen Pfad zu finden, aber das scheint in einer Konsolenanwendung nicht verfügbar zu sein.
Die obige Antwort entsprach zu 90 % dem, was ich brauchte, gab aber einen Uri anstelle eines regulären Pfads zurück.
Wie im Beitrag in den MSDN-Foren erläutert, Wie konvertiert man einen URI-Pfad in einen normalen Dateipfad? habe ich das Folgende verwendet:
// Get normal filepath of this assembly's permanent directory
var path = new Uri(
System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
).LocalPath;
Wenn Sie nach einer .NET Core-kompatiblen Methode suchen, verwenden Sie
System.AppContext.BaseDirectory
Dies wurde in .NET Framework 4.6 und .NET Core 1.0 (und .NET Standard 1.3) eingeführt. Siehe: AppContext.BaseDirectory-Eigenschaft .
Según diese Seite ,
Dies ist der bevorzugte Ersatz für AppDomain.CurrentDomain.BaseDirectory in .NET Core
Für Konsolenanwendungen können Sie dies versuchen:
System.IO.Directory.GetCurrentDirectory();
Ausgabe (auf meinem lokalen Rechner):
c: \users\xxxxxxx\documents\visual Atelier 2012 \Projects\ImageHandler\GetDir\bin\Debug
Oder Sie können es versuchen (es gibt einen zusätzlichen Backslash am Ende):
AppDomain.CurrentDomain.BaseDirectory
Sortie :
c: \users\xxxxxxx\documents\visual Atelier 2012 \Projects\ImageHandler\GetDir\bin\Debug\
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
7 Stimmen
Installieren Sie .NET Framework auf dem Zielcomputer (Client, Entwicklung)? wenn Ihre Antwort wahr ist; So können Sie einen Verweis auf System.Windows.Forms.dll hinzufügen und Application.StartupPath verwenden! Dies ist der beste Weg, wenn Sie weitere zukünftige Ausnahmen vermeiden wollen!
0 Stimmen
AppDomain.BaseDirectory ist das App-Verzeichnis. Beachten Sie, dass sich die Anwendung in der VS-Umgebung anders verhalten kann als in der Win-Umgebung. Aber AppDomain sollte gleich sein, nicht wie application.path, aber ich hoffe, dass dies nicht nur für IIS ist.