92 votes

Dois-je utiliser AppDomain.CurrentDomain.BaseDirectory ou System.Environment.CurrentDirectory ?

J'ai deux fichiers exe dans le même dossier, je peux lancer exe2 à partir d'un bouton dans exe1. Aujourd'hui, j'ai observé un client au cours d'une session à distance (services terminaux) et l'exe2 n'a pas réussi à s'exécuter (erreur "Fichier non trouvé"), alors que l'exe1 se trouvait dans le même répertoire lors de la vérification. Devrais-je donc utiliser AppDomain.CurrentDomain.BaseDirectory o Répertoire actuel de System.Environment ?

Merci

2voto

Zahymaka Points 2589

J'utilise généralement quelque chose comme :

            string AppPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
            AppPath = AppPath.Replace("file:\\", "");

2voto

BNN Points 2690

J'ai également vécu cela il y a quelques jours, alors que j'étais en train d'utiliser

Environment.CurrentDirectory

car il me posait problème sur le serveur de production mais fonctionnait bien sur mon serveur local,

Alors, j'ai essayé avec

System.AppDomain.CurrentDomain.BaseDirectory;

Et ça a marché pour moi dans les deux environnements.

Donc, comme tout le monde l'a dit, nous devrions toujours aller avec

System.AppDomain.CurrentDomain.BaseDirectory;

car il vérifie le répertoire du domaine actuel pour le chemin.

Pour plus d'informations, consultez le site

Erreur "Could not find a part of path" sur le serveur

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