Comment puis-je obtenir le chemin de l'assemblage dans lequel se trouve le code ?
Existe-t-il un moyen d'obtenir le chemin de l'assemblage dans lequel réside le code actuel ? Je ne veux pas le chemin de l'assemblage appelant, seulement celui qui contient le code.
En fait, mon test unitaire doit lire des fichiers de test xml qui sont situés relativement à la dll. Je veux que le chemin soit toujours résolu correctement, que la dll de test soit exécutée à partir de TestDriven.NET, de l'interface graphique MbUnit ou d'un autre outil.
Edit : Les gens semblent mal comprendre ce que je demande.
Ma bibliothèque de test est située dans le répertoire
C:\projects\myapplication\daotests\bin\Debug\daotests.dll
et je voudrais obtenir ce chemin :
C:\projects\myapplication\daotests\bin\Debug\
Les trois suggestions faites jusqu'à présent me font échouer lorsque je lance le programme à partir de la Gui MbUnit :
-
Environnement.Répertoire Actuel
donne c:\Program Files\MbUnit. -
System.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location
donne C:\Documents and Settings\george\Local Settings\Temp\ ....\DaoTests.dll -
System.Reflection.Assembly.GetExecutingAssembly().Location
donne le même résultat que le précédent.
Cela vous aide-t-il ?
Cela devrait fonctionner, à moins que l'assemblage ne fasse l'objet d'une " copie fantôme " :
Le répertoire actuel où vous existez.
Si vous copiez le fichier .xml avec build, vous devriez le trouver.
ou