如何获取给定位置的装配清单?我试图反思appdomain,这是给我所有加载的东西。我只想要执行程序集目录中的内容。在目录中查找装配
Q
在目录中查找装配
1
A
回答
1
由BtBh提供解决方案的工作,以找到扩展.dll的所有文件。 Ricards注释说只有.Net运行时才能告诉你什么是有效的程序集。这意味着你将不得不显式加载每个找到的.dll文件来检查它是否是一个有效的.Net程序集(它可能只是一个普通的旧Windows dll)。如Josh所述,有一种静态方法Assembly.ReflectionOnlyLoadFrom,它允许您通过反射来加载用于检查的组件。
5
要得到执行的程序集路径:
using System.IO;
String path= Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().Location);
要获得所有组件:
DirectoryInfo di= new DirectoryInfo(path);
FileInfo[] fis = di.GetFiles("*.dll");
foreach(FileInfo fis in fls)
//do something
1
你可以使用System.IO命名空间的文件列表。查看目录类。然后您需要确定文件是否是程序集。你可以检查二进制文件寻找IL元数据,但是这个答案超出了范围。
您也可以尝试只使用System.Reflection.Assembly.ReflectionOnlyLoadFrom()加载每个文件进行反射。
1
只有通过加载它们,并注意哪些加载失败。这当然会留下那些在当前应用程序域中未加载失败的代码。
只有.NET运行库会告诉你什么是有效的程序集(并且程序集不必具有“.exe”或“.dll”扩展名)。
1
要获取当前应用程序域加载的所有组件,您可以使用GetAssemblies方法:
Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
相关问题
- 1. 查找tomcat安装目录
- 2. 在CMake中查找目录
- 3. 查找目录
- 4. 查找目录中的所有目录
- 5. 查找或配置Solr的主目录
- 6. Unix查找通配符目录结构
- 7. 配置tomcat如查找bin目录
- 8. 在windows中查找JDK的安装目录
- 9. 在Python窗口中查找程序的安装目录
- 10. 查找目录路径(递归)匹配的目录名
- 11. Unix查找与目录匹配的目录
- 12. 使用Linux在目录中使用通配符查找文件
- 13. 在目录c#中查找匹配模式的文件?
- 14. 找到tomcat安装目录
- 15. 查找Apache目录
- 16. Android:查找目录
- 17. 查找项目目录
- 18. WQL在目录中查找文件
- 19. 在linux中查找叶目录
- 20. 在目录中查找文件
- 21. 在内核模块中查找目录
- 22. 在C程序中查找目录
- 23. 如何在ASP.NET中查找目录
- 24. 如何在PHP中查找父目录?
- 25. Quartz.Net在多个目录中查找
- 26. 在大目录中查找随机对
- 27. 在web.config文件中查找根目录
- 28. 在Python中查找“主目录”?
- 29. 在CodeIgniter中查找目录结构
- 30. preg_match在URL中查找当前目录
谢谢,但是我也得到了框架程序集。我只想要本地的。 – Steve 2009-03-04 17:36:34