当前位置:编程学习 > C#/ASP.NET >>

如何获取出所有引用DLL?(不是获取已加载的程序集,而是全部)

如题。 --------------------编程问答--------------------
Array array=AppDomain.CurrentDomain.GetAssemblies();

--------------------编程问答-------------------- CurrentDomain//当前应用程序域~
array[index].Location()//当前引用dll的路径 --------------------编程问答--------------------       System.AppDomain _Domain = System.AppDomain.CurrentDomain;
            Assembly[] _AssemblyList = _Domain.GetAssemblies();

            IList<string> _DllPath = new List<string>();

            for (int i = 0; i != _AssemblyList.Length; i++)
            {
                _DllPath.Add(_AssemblyList[i].Location);
            }
           
           --------------------编程问答-------------------- Array array=AppDomain.CurrentDomain.GetAssemblies(); 

只能获取到已加载的DLL,因为.net使用的是延迟加载,主程序没有使用某个DLL的功能时,是不会加载的。因此上面的方法只不能使用要求,不知道有没有方法能做到。。。 --------------------编程问答-------------------- 把你要用的dll都放在一个文件里,你用程序查这个文件里有哪些dll不就行了?
说的不对当我没说啊
--------------------编程问答-------------------- 路过 --------------------编程问答-------------------- 一个具体的 Assembly, 
有 GetReferencedAssemblies 调用, 
用于获取这个程序集引用到的所有程序集名称, 
是完整名称, 这些程序集可能尚未加载. --------------------编程问答-------------------- 获取程序bin目录,然后通过反射,获取全部程序集的名字 --------------------编程问答--------------------
引用 8 楼 erynkyo 的回复:
获取程序bin目录,然后通过反射,获取全部程序集的名字
觉得可行 --------------------编程问答-------------------- System.Reflection.Assembly.GetEntryAssembly().GetReferencedAssemblies();

就可以 --------------------编程问答-------------------- 谢谢。
System.Reflection.Assembly.GetEntryAssembly().GetReferencedAssemblies(); 是可行的,
但我得到的是Assembly对象集,而它返加的是AssemblyName对象集。。 --------------------编程问答-------------------- System.Reflection.Assembly.GetEntryAssembly().GetReferencedAssemblies();
好像也不行,也是已加载的。 --------------------编程问答-------------------- 有的程序集又调用了别的程序集,如果想全部获取的话,恐怕需要用Hash配合递归进行搜索。 --------------------编程问答-------------------- 有没有谁知道呀。。。 --------------------编程问答-------------------- 再顶一次,期待有效方法 --------------------编程问答-------------------- 看来是找不到方法了。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,