192 votes

Comment obtenez-vous le répertoire de projet actuel à partir du code C# lors de la création d'une tâche MSBuild personnalisée ?

Au lieu d'exécuter un programme externe dont le chemin est codé en dur, j'aimerais obtenir le Dir. du projet actuel. J'appelle un programme externe en utilisant un processus dans la tâche personnalisée.

Comment je ferais ça ? AppDomain.CurrentDomain.BaseDirectory me donne juste l'emplacement de VS 2008.

362voto

mohammed sameeh Points 496
using System;
using System.IO;

// This will get the current WORKING directory (i.e. \bin\Debug)
string workingDirectory = Environment.CurrentDirectory;
// or: Directory.GetCurrentDirectory() gives the same result

// This will get the current PROJECT bin directory (ie ../bin/)
string projectDirectory = Directory.GetParent(workingDirectory).Parent.FullName;

// This will get the current PROJECT directory
string projectDirectory = Directory.GetParent(workingDirectory).Parent.Parent.FullName;

144voto

DaDa Points 1904

Vous pouvez essayer l'une de ces deux méthodes.

string startupPath = System.IO.Directory.GetCurrentDirectory();

string startupPath = Environment.CurrentDirectory;

Dites-moi, lequel vous semble le mieux

23voto

nh43de Points 723

Cela vous donnera également le répertoire du projet en naviguant deux niveaux vers le haut à partir du répertoire en cours d'exécution (cela ne retournera pas le répertoire du projet pour chaque compilation, mais c'est le plus commun).

System.IO.Path.GetFullPath(@"..\..\")

Bien sûr, vous voudriez le contenir dans une sorte de logique de validation/gestion des erreurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X