112 votes

Comment obtenir l'emplacement de la DLL en cours d'exécution ?

J'ai un fichier de configuration que je dois charger dans le cadre de l'exécution d'une dll que je suis en train d'écrire.

Le problème que je rencontre est que l'endroit où j'ai placé la dll et le fichier de configuration n'est pas l'emplacement actuel lorsque l'application est en cours d'exécution.

Par exemple, je place les fichiers dll et xml ici :

D:\Program Dossiers \Microsoft Team Foundation Server 2010 \Application Niveau \Web Services \bin\Plugins

Mais si j'essaie de référencer le fichier xml (dans ma dll) comme ceci :

XDocument doc = XDocument.Load(@".\AggregatorItems.xml")

puis . \AggregatorItems.xml se traduit par :

C:\windows\system32\inetsrv\AggregatorItems.xml

Je dois donc trouver un moyen (je l'espère) de savoir où se trouve la dll qui s'exécute actuellement. En gros, je cherche ceci :

XDocument doc = XDocument.Load(CoolDLLClass.CurrentDirectory+@"\AggregatorItems.xml")

1voto

Yonah Ochieng' Points 31

Essayez ceci

System.IO.Path.GetDirectoryName(new System.Uri(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).LocalPath)

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