获取AssemblyName-object的文件名

时间:2015-11-20 09:24:26

标签: c# reflection .net-assembly

以下代码迭代MyAssembly.dll的所有引用程序集。如何输出引用的程序集的物理文件名?那么如何获取AssemblyName-Object的文件名?

Assembly myAssembly = Assembly.LoadFile(@"C:\MyAssembly.dll");
foreach (AssemblyName lRefAsm in myAssembly.GetReferencedAssemblies())
{
   ...
}

E.g。 ToString() - AssemblyName的方法只输出如下内容:

System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

我找不到任何给我文件名的属性。

2 个答案:

答案 0 :(得分:0)

您可能希望获得Location属性的值。

答案 1 :(得分:0)

        Assembly myAssembly = Assembly.GetExecutingAssembly();
        foreach (AssemblyName lRefAsm in myAssembly.GetReferencedAssemblies())
        {
            Assembly ass = Assembly.Load(lRefAsm.FullName);
            string codeBase = ass.CodeBase;
            UriBuilder uri = new UriBuilder(codeBase);
            string path = Uri.UnescapeDataString(uri.Path);
            Console.WriteLine(Path.GetDirectoryName(path));
        }

我复制了一些代码here