2009-11-10 50 views

回答

12

如何以編程方式確定是否 文件是彙編

調用GetAssemblyName方法, 傳遞完整的文件路徑和名稱 正在測試的文件。

如果引發BadImageFormatException異常 ,則該文件不是 程序集。

http://msdn.microsoft.com/en-us/library/ms173100.aspx

2

除了傑夫的建議,似乎有一種方法來測試一個組件未拋出異常這裏記錄管理:http://www.codeguru.com/forum/showthread.php?t=424454

其實,如果你開的一個.NET庫/應用程序二進制編輯器,您將看到ASCI文本「BSJB」後面緊跟着DLL/EXE所需的Framework版本。

因此,根據此搜索屬性的存在,您不僅可以識別庫/可執行文件是否爲託管庫,還可以識別它使用的框架版本。

+1

不要做這樣的事情。不保證將來以任何方式,形狀或形式工作。 – Stu

+2

如果您進一步閱讀同一頁面,還有更好的方法記錄。另外,我發現你的所有大寫聲明都很煩人。一些像這樣的黑客可以用於與故障安全相結合的好處。由OP檢查的程序集的數量可能並不值得再次考慮,但萬一它確實如此,儘量避免依賴異常作爲正常流程的一部分總是好的。如果能夠使用黑客先檢查程序集,那麼爲什麼不嘗試呢? – Chris

+0

+1只是因爲它在命令行上起作用,'FINDSTR/M/S「BSJB」* .dll'將生成一個文件夾中所有.Net dll的列表 – Mitch

相關問題