TL; DRAusführen von Assembly Ort ist unbekannt
Warum
System.Reflection.Assembly.GetExecutingAssembly().Location
kehrt "<Unknown>"
?
Die ganze Geschichte: Wenn ich meine Konsolenanwendung manuell ausführen, läuft alles gut. Wenn ich den Taskplaner so konfiguriere, dass meine App ausgeführt wird, liegt ein Problem vor: Meine App kann keine abhängigen Dateien finden. Diese Dateien werden in der .config-Datei wie folgt geschrieben: <add key="SomeFile" value="SomeFolder\SomeFile.xml"/>
, ich brauche nur relative Pfade.
Wenn ich betreiben meinen App manuell ‚aktuelle Ordner‘ = ‚Anwendungsordner‘, aber wenn ich mit Taskplaner ausführen, ‚aktuelle Ordner‘ = C:\Windows\system32
, weil mit dem Task Scheduler meiner App läuft unter taskeng.exe
, die in system32 liegt.
So Montage Weg zu finden Ich möchte diesen Code verwenden:
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
aus dieser Antwort https://stackoverflow.com/a/16102640/6184866.
Aber es funktioniert nicht.
können Sie Directory.GetCurrentDirectory dasselbe in einigen Variablen dann Directory.SetCurrentDirectory zu Ihrem erforderlichen dann wieder setzen aktuellen dir zu temp, sobald Sie mit Ihrer Arbeit fertig sind –