以下代码迭代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
我找不到任何给我文件名的属性。
答案 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。