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.

Auftrag?

VB.NET-Entwicklung für dein Projekt?

Ich entwickle täglich mit VB.NET und C#. Ob Dateisystem-Operationen oder komplette Anwendungen – schreib mir einfach.

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

Wie lese ich den Anwendungspfad in VB.NET aus?

Der zuverlässigste Weg ist AppContext.BaseDirectory. Er funktioniert in Windows Forms, WPF und .NET Core ohne Einschränkungen.

Was ist der Unterschied zwischen AppContext.BaseDirectory und Application.StartupPath?

Application.StartupPath ist nur in Windows Forms verfügbar. AppContext.BaseDirectory funktioniert in allen .NET-Projekttypen und ist die moderne Empfehlung.

Warum sollte ich My.Application.Info.DirectoryPath nicht verwenden?

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.

Kann ich in VB.NET mit einem relativen Pfad arbeiten?

Ja. Mit .\datei.txt oder File.WriteAllText("datei.txt", ...) referenzierst du Dateien relativ zum Ausführungsverzeichnis, ohne den absoluten Pfad ermitteln zu müssen.

Downloads

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Robert Skibbe
Datenschutz-Übersicht

Diese Website verwendet Cookies, damit wir dir die bestmögliche Benutzererfahrung bieten können. Cookie-Informationen werden in deinem Browser gespeichert und führen Funktionen aus, wie das Wiedererkennen von dir, wenn du auf unsere Website zurückkehrst, und hilft unserem Team zu verstehen, welche Abschnitte der Website für dich am interessantesten und nützlichsten sind.