2017-01-31 4 views
1

Ich habe eine C# (. Net Core) -Lösung in Visual Studio 2017 RC3, die viele Projekte enthält (4, wenn Sie neugierig sind) und ich vor kurzem aus dem alten Projekt projects.json/Visual Studio 2015 mit VS 2017 RC3 migriert.Wie erhalten Sie C# (. Net Core) Projektverzeichnispfad in Visual Studio 2017 RC3?

Eines der Projekte ist ein Testprojekt, bei dem ich auf einige darin enthaltene Dateien zugreifen muss.

Es scheint, dass Directory.GetCurrentDirectory() nicht vertrauenswürdig ist, um den Projektpfad im Testcode zu erhalten, da Tests in VS 2017 vom Installationsort der IDE C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE ausgeführt werden.

Momentan arbeite ich daran, indem ich den Basispfad des Testprojekts hartcodiere. Da dies nicht ideal ist, gibt es eine Alternative programmatisch den Basispfad eines Projekts in VS 2017 RC3 zu erhalten?

Antwort

4

Sie sollten in der Lage sein, mit AppContext.BaseDirectory zu bekommen, was Sie wollen. Dies wird zurückgegeben, wo die Tests von% Projektordner% \ bin \ debug \ netcoreapp1.1 ausgeführt werden. Sie könnten so etwas tun, um den Projektordner zu erhalten.

AppContext.BaseDirectory.Substring(0, AppContext.BaseDirectory.IndexOf("bin"));

Sie könnten dies in einen Helfer oder Extension-Methode werfen.

+1

Ich würde 'LastIndexOf' verwenden, falls ein vorhergehendes Verzeichnis die Sequenz" bin "enthält. – DSUK

Verwandte Themen