Noch eine unvollkommene Lösung (aber vielleicht ein bisschen näher an der Perfektion als einige der anderen):
protected static string GetSolutionFSPath() {
return System.IO.Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName;
}
protected static string GetProjectFSPath() {
return String.Format("{0}\\{1}", GetSolutionFSPath(), System.Reflection.Assembly.GetExecutingAssembly().GetName().Name);
}
Diese Version wird die Rückkehr aktuelle Projekte Ordner auch wenn das aktuelle Projekt nicht das ist Startup Project
für die Lösung.
Der erste Fehler dabei ist, dass ich alle Fehlerprüfungen übersprungen habe. Dies kann leicht behoben werden, sollte jedoch nur dann ein Problem darstellen, wenn Sie Ihr Projekt im Stammverzeichnis des Laufwerks speichern oder eine Junction in Ihrem Pfad verwenden (und diese Junction ein Nachkomme des Lösungsordners ist), sodass dieses Szenario unwahrscheinlich ist . Ich bin mir nicht ganz sicher, ob Visual Studio eines dieser Setups überhaupt verarbeiten kann.
Ein weiteres (wahrscheinlicheres) Problem, auf das Sie möglicherweise stoßen, besteht darin, dass der Projektname mit dem Ordnernamen des Projekts übereinstimmen muss , damit es gefunden wird.
Ein weiteres Problem besteht möglicherweise darin, dass sich das Projekt im Lösungsordner befindet. Dies ist normalerweise kein Problem. Wenn Sie jedoch die Add Existing Project to Solution
Option zum Hinzufügen des Projekts zur Lösung verwendet haben, ist Ihre Lösung möglicherweise nicht so organisiert.
Wenn Ihre Anwendung das Arbeitsverzeichnis ändert, sollten Sie diesen Wert vorher speichern, da dieser Wert relativ zum aktuellen Arbeitsverzeichnis bestimmt wird.
Dies alles bedeutet natürlich auch, dass Sie die Standardwerte für die Optionen Build
-> Output path
oder Debug
-> Ihrer Projekte Working directory
im Dialogfeld Projekteigenschaften nicht ändern dürfen .