Ich habe eine Konsolenanwendung. Und in dieser Anwendung habe ich ein Klassenbibliotheksprojekt erstellt, das ich im Hauptprojekt referenziere. In dieser Klassenbibliothek habe ich eine Datei, die ich zu bekommen versuche. der Code dafür:Warum ist das AppDomain.CurrentDomain.BaseDirectory-Targeting für das Bin-Catenlog in der Konsolenanwendung?
public static string GetPath(string fileName)
{
char separator = Path.DirectorySeparatorChar;
string startupPath = AppDomain.CurrentDomain.BaseDirectory;
string[] pathItems = startupPath.Split(separator);
string projectPath = string.Join(separator.ToString(),
pathItems.Take(pathItems.Length - 1)) + ".Handler";
string path = Path.Combine(projectPath, "WebRequestHandlers\\Files" + separator + fileName);
return path;
}
Ich habe dies in .net Web-Projekt verwendet, vor und es hat funktioniert, aber aus irgendeinem Grund, dies ist mein AppDomain.CurrentDomain.BaseDirectory:
C: \ projects \ OverWatchServerCall \ OverWatchServerCall \ bin \ Debug \
es sein sollte:
C: \ projects \ OverWatchSe rverCall \ OverWatchServerCall \
Die Datei wird im Classlibrary-Projekt ist und wie ich schon sagte, bevor diese in .net Web-api Projekte gut funktioniert
Warum ist das passiert?
EDIT:
Directory.GetCurrentDirectory()
Gibt den gleichen Weg
Vielen Dank für die Erläuterung. Ich war auf der Suche nach einer Lösung, aber in meiner Frustration habe ich vergessen, es zu erwähnen. aber ich habe Teilzeichenfolge verwendet, um/bin/debug zu entfernen und mein Code hat funktioniert – ThunD3eR
@ Ra3IDEn Kein Problem! Gern geschehen, und ich bin froh, dass Sie das Problem lösen;) –
@ Ra3IDeN Es gibt keine Lösung hier, da das 'BaseDirectory' nur bereitgestellt werden kann, wenn die 'AppDomain' erstellt wird :( –