Hi,
ich suche einen Weg das Verzeichnis in dem sich meine .exe befindet zu ermitteln. Ich bin ja dort schon fündig geworden mit
Application.StartupPath
Allerdings habe ich damit ein Problem: der letzte Ordner fehlt!
Die .exe befindet sich im Debug-Modus also beispielsweise in
\*Benutzer*\Documents\Visual Studio 2017\Projects\*Projektname*\*Projektname*\bin\x64\Debug
Dann liefert mir aber Application.StartupPath den Ordner
\*Benutzer*\Documents\Visual Studio 2017\Projects\*Projektname*\*Projektname*\bin\x64\
Gibt es dafür eine Lösung, oder mache ich da irgendwas falsch?
VG
Matthias
Du hast in dem Thread gelesen, dass StartupPath falsche Ergebnisse liefern kann und wie man besser den Pfad ermittelt?
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ja, aber auch dass die anderen Methoden ebenfalls ihre Probleme haben. So die eine "beste" Lösung lese ich da ehrlich gesagt nicht heraus.
Höchstens noch "Path.GetDirectoryName (Assembly.GetExecutingAssembly ().Location);"
Der scheint auch soweit auch zu funktionieren, aber funktioniert der immer wenn die Voraussetzung gegeben ist, dass der Befehl in der exe steckt? Kann ich mich darauf verlassen?
Application.StartupPath habe ich bis dato auch schon öfter verwendet und jetzt ist es das erste Mal, dass dieses Problem auftritt und gefühlt mache ich eigentlich auch nix anders als sonst. Und ich arbeite auch nicht an einem Dienst, sondern an einer ganz normalen Windows.Form-Anwendung.
Es ist nicht neu, dass Application.StartupPath
nicht zuverlässig ist, im Gegensatz zu den anderen Varianten.
Der Thread ist mehr als 10 Jahre alt.
Und natürlich kann es sein, dass je nach eingesetztem .NET Projekttyp eben Variante A, B oder dann eben F besser ist. "Beste" ist daher hinfällig.
Absolutismus bei sich weiter entwickelnden Technologien ist halt schwierig...steht alles klar in dem FAQ-Thread.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Naja, ich bleib jetzt erstmal bei "Path.GetDirectoryName (Assembly.GetExecutingAssembly ().Location);", mal sehen...
BTW, wenn der Thread ja praktisch schon veraltet ist:
Gibt es da heutzutage bessere/andere Varianten?
Wo genau soll denn der Thread veraltet sein? 🤔 Magst das mal erklären?
Alle .NET Technologien (.NET Framework, .NET Standard, .NET Core) sowie WPF, WinForms und der ASP.NET Stack sind abgedeckt.
Was fehlt Dir denn?
Xamarin funktioniert ganz anders, ebenso UWP - da hast Du keinen Startpfad sondern ohnehin nur isolierte Apps.
Gleicher Blazor.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code