如何获取引用的程序集的物理路径

时间:2013-06-14 07:37:50

标签: c# .net .net-assembly

我有一个主程序集,这个程序集引用了一些更多的程序集。我能够获得那些引用的汇编名称。但是,我无法检索那些引用程序集的物理路径。任何人都可以帮我这个吗?

我正在使用以下代码。

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());
    }

它为我提供了系统组装的路径" mscorlib"。但是当它试图检索用户创建的程序集时,它会说"系统找不到指定的文件"。

1 个答案:

答案 0 :(得分:4)

也许是这样:

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

string dir = Path.GetDirectoryName( path);