我有一个主程序集,这个程序集引用了一些更多的程序集。我能够获得那些引用的汇编名称。但是,我无法检索那些引用程序集的物理路径。任何人都可以帮我这个吗?
我正在使用以下代码。
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"。但是当它试图检索用户创建的程序集时,它会说"系统找不到指定的文件"。
答案 0 :(得分:4)
也许是这样:
string path = System.Reflection.Assembly.GetAssembly(typeof(asm)).Location;
string dir = Path.GetDirectoryName( path);