2009-05-27 9 views
12

En essayant de connaître le chemin d'une DLL .... plusieurs sites dit que je dois utiliser System.Reflection.Assembly.GetExecutingAssembly() .Mais il retourne un chemin dans C: \ Windows \ Microsoft.Net ... etc ... \ file.dllObtenir le chemin d'assemblage C#

et je veux c: \ MyProyect \ MiWeb \ Bin \ file.dll

d'aide?

+1

Est-ce pour un projet web? –

+0

Pouvez-vous publier les chemins d'assemblage réels que vous obtenez et que vous voulez? C'est à dire. les chemins complets, avec les vrais noms d'assembly. En outre, postez le code pour la méthode qui essaye de déterminer le chemin d'assembly. –

Répondre

21

Vous pouvez le faire en utilisant:

string file = (new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).LocalPath; 
3

L'emplacement de l'assemblage change en fonction des redirections et des clichés instantanés. Essayez d'utiliser la propriété Codebase à la place.

1

Cela peut en fait être le chemin que le programme utilise ... IIRC, Il commence par chercher l'appel de méthode dans le GAC avant de passer par défaut dans le répertoire de travail.

0

Etes-vous sûr d'avoir référencé le bon assemblage dans votre projet? On dirait que vous utilisez un assemblage "par défaut" puisqu'il se trouve dans le dossier .NET.

Questions connexes