VB.NET Application Path auslesen – alle Wege im Vergleich (2026)
Um den Anwendungspfad in VB.NET zu ermitteln, gibt es mehrere Wege. Die zuverlässigste Lösung für moderne .NET-Projekte ist AppContext.BaseDirectory. In diesem Beitrag siehst du alle Varianten im Vergleich, inklusive Windows Forms und dem veralteten My-Namespace.
Inhaltsverzeichnis
Der alte Weg
Der meiner Meinung nach veraltete Weg, Welcher auch nicht mehr verwendet werden sollte, ist der Folgende:
My.Application.Info.DirectoryPath
Wir finden dort im „My.Application.Info„-Objekt verschiedene Informationen über die Applikation.
Das Problem des My-Namespaces sehe ich unter anderem darin, dass man in anderen .NET-Sprachen nicht ohne weitere Tricks darauf zugreifen kann (jedenfalls mir nicht anders bekannt).
Letztendlich geht ist hier allerdings nicht weiter um den global verpönten My-Namespace, daher überspringen wir weitere Argumente an dieser Stelle.
Der einfachste Weg – VB.NET Application Path
Der wohl einfachste Weg um den VB.NET Application Path auszulesen, bzw. ihn zu verwenden ist die Angabe eines relativen Pfades. So spart man sich im Endeffekt komplett den Umgang mit dem absoluten Applikations-Pfad:
File.WriteAllText(".\Sample.txt", "Contents..")
Mehr zu Dateioperationen: VB.NET Textdatei schreiben und VB.NET Textdatei einlesen.
Im Code hier drüber schreiben wir letztendlich eine Datei namens Sample.txt mit dem angegebenen Inhalt in das aktuelle Verzeichnis der Anwendung.
Windows Forms Weg
Ein Weg den man beispielsweise im „Windows Forms„-Kontext gehen könnte wäre:
Application.StartupPath
Die ausführlichere Variante über ExecutablePath:
System.IO.Path.GetDirectoryName(Application.ExecutablePath)
Es gibt auch noch die Variante über:
Environment.CurrentDirectory
„Leider“ kann das „CurrentDirectory“ auch gesetzt werden und liefert dann eventuell nicht mehr das gewünschte, bzw. erwartete Ergebnis, daher rate ich davon ab.
Der empfohlene Weg
AppContext.BaseDirectory ist die empfohlene Lösung: Sie funktioniert in Windows Forms, WPF und .NET Core gleichermaßen und gibt immer das Verzeichnis der ausführenden Assembly zurück.
AppContext.BaseDirectory
Willst du damit direkt eine Datei öffnen? Schau dir VB.NET PDF-Datei öffnen an.
FAQ
Der zuverlässigste Weg ist AppContext.BaseDirectory. Er funktioniert in Windows Forms, WPF und .NET Core ohne Einschränkungen.
Application.StartupPath ist nur in Windows Forms verfügbar. AppContext.BaseDirectory funktioniert in allen .NET-Projekttypen und ist die moderne Empfehlung.
Der My-Namespace ist VB.NET-spezifisch und in anderen .NET-Sprachen nicht verfügbar. Er gilt als veraltet und sollte in neuen Projekten nicht mehr eingesetzt werden.
Ja. Mit .\datei.txt oder File.WriteAllText("datei.txt", ...) referenzierst du Dateien relativ zum Ausführungsverzeichnis, ohne den absoluten Pfad ermitteln zu müssen.