2013-06-14 5 views
4

J'ai un assemblage principal, cet assemblage a référencé un peu plus d'assemblage. Je suis en mesure d'obtenir ces noms assmbly référencés. Mais, je suis incapable de reprendre le chemin physique de ces assemblages référencés. Quelqu'un peut m'aider à ce sujet?Comment obtenir le chemin physique des assemblages référencés

J'utilise le code suivant.

string path = Path.GetFullPath(txtFileName.Text); 
Assembly a = Assembly.LoadFrom(path); 

    foreach (AssemblyName an in a.GetReferencedAssemblies()) { 
    Assembly asm = Assembly.Load(an);     
    MessageBox.Show(an.FullName.ToString() + "Location : " + asm.CodeBase.ToString()); 
    } 

Il me donne le chemin de l'assemblage du système "mscorlib". Mais quand il essaie de récupérer l'assembly créé par l'utilisateur, il dit "Le système ne peut pas trouver le fichier spécifié".

+0

http://stackoverflow.com/questions/4193516/get-the-paths-of-all-referenced-assemblies - OU - http://stackoverflow.com/ questions/1582510/get-pathes-de-assemblies-used-in-type – Smartis

Répondre

4

Peut-être comme ceci:

string path = System.Reflection.Assembly.GetAssembly(typeof(asm)).Location; 

string dir = Path.GetDirectoryName(path); 
+0

Il me montre une erreur à "typeof (asm)". –

+0

Vous devez placer une classe contenue dans l'assembly dont vous voulez le chemin. –

+0

Je reçois l'erreur à Assembly asm = Assembly.Load (an); dans mon code. Il dit ne pas pouvoir obtenir le chemin. –

Questions connexes