如何獲取給定位置的裝配清單?我試圖反思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. 查找目錄
- 3. 查找目錄中的所有目錄
- 4. 在windows中查找JDK的安裝目錄
- 5. 在Python窗口中查找程序的安裝目錄
- 6. 查找目錄路徑(遞歸)匹配的目錄名
- 7. Unix查找與目錄匹配的目錄
- 8. 找到tomcat安裝目錄
- 9. 查找Apache目錄
- 10. Android:查找目錄
- 11. WQL在目錄中查找文件
- 12. 在CMake中查找BLAS包含目錄
- 13. 如何在PHP中查找父目錄?
- 14. 在Python中查找「主目錄」?
- 15. 在Python中查找空目錄
- 16. preg_match在URL中查找當前目錄
- 17. 在大目錄中查找隨機對
- 18. 在Android中查找目錄位置
- 19. 在內核模塊中查找目錄
- 20. 如何在ASP.NET中查找目錄
- 21. 在linux中查找葉目錄
- 22. 在另一個目錄中查找目錄
- 23. unix在目錄和子目錄中查找和替換文本
- 24. 如何查找某個目錄中存在的特定目錄
- 25. Nodejs:無法在視圖目錄中查找「錯誤」目錄
- 26. 配置Webpack以查找與目錄名稱匹配的文件
- 27. 在symfony中配置安裝資產的目標目錄
- 28. 查找pwd中所有目錄的目錄中的文件數
- 29. 混帳:查找目錄樹
- 30. Python LXML目錄查找
謝謝,但是我也得到了框架程序集。我只想要本地的。 – Steve 2009-03-04 17:36:34