回答
試圖加載程序集,找出是一個先有雞還是先有蛋的命題。如果你沒有得到一個BadImageFormatException,那麼這個拱是適當的,你不再關心它是什麼。如果你確實得到了異常,那麼程序的配置是錯誤的。在代碼中你無能爲力。
假設您只查看.net程序集,可以使用CorFlags.exe來查看圖像的標題。
This blog post解釋了用於確定如何讀取結果的用法。摘錄:
用法:Corflags.exe大會[選項]
如果沒有指定任何選項,將顯示給定的圖像標誌。
...
這裏是頭部的每個組件是指:
版本:包含.NET的Redist與二進制是 內置的版本。
CLR標頭:2.0表示.Net 1.0或.Net 1.1(Everett)圖像,而2.5表示.Net 2.0(Whidbey)圖像。
CorFlags:這是通過OR'g特定的標誌來計算以指示 圖像是否是ILONLY,其位數等,並且 使用由加載程序。 ILONLY:託管 圖像被允許包含原生 的代碼。要成爲「anycpu」,圖像應該只包含IL。
32BIT:即使你只包含IL仍可能 有平臺依賴性,32位 標誌是用來區分「86」,從「anycpu」圖像 圖像的圖像。 64位 圖像通過事實 區分它們具有PE類型的PE32 +。
最有趣的方面是標題的PE和32BIT標誌。 這些組合來指定組件 類型。下面是他們將如何看 像:
- anycpu:PE = PE32和32位= 0
- 86:PE = PE32和32位= 1
- 64位:PE = PE32 +和32BIT = 0
什麼是更好的:1)AssemblyName.ProcessorArchitecture,2)CorFlags.exe(和解析器C# - Process.Start),3)ApiChange https://apichange.codeplex。 COM /或4)PE閱讀器http://stackoverflow.com/a/9767750/206730? – Kiquenet 2014-03-25 14:56:52
我安裝VS 2008,VS 2010,VS 2012和VS 2013.我在C:\ Program Files(x86)\ Microsoft SDKs \ Windows \中的子文件夾中有8個文件CorFlags.exe。我應該用哪個? – Kiquenet 2014-03-25 15:04:56
您還可以使用FileStream讀取程序集文件。 Windows可執行文件的格式在Microsoft pe/coff規範中指定。你可以在這裏閱讀:
http://www.microsoft.com/whdc/system/platform/firmware/pecoff.mspx
- 1. 如何獲得有關Windows 8應用程序處理器體系結構的信息
- 2. RISC體系結構處理器將來會比CISC體系結構處理器的性能更好
- 3. 應用程序體系結構:請求處理
- 4. 處理N層體系結構事務
- 5. 嚮導式圖像處理應用程序的體系結構應用程序
- 6. 如何在處理N層體系結構時管理事務?
- 7. C#如何獲得操作系統體系結構(x86或x64)?
- 8. 如何處理與Swift中的結構體的關係?
- 9. Kaa集羣體系結構
- 10. Cassandra集羣體系結構
- 11. 特定於語言的體系結構/處理器
- 12. 如何獲得'.a'文件的體系結構?
- 13. 程序集與Windows Azure上IIS使用的64位處理器體系結構不兼容
- 14. Python中插件體系結構的多處理或多線程處理
- 15. 如何在MVC體系結構中處理異常?
- 16. .NET N層體系結構:我該如何處理Model對象?
- 17. Umbraco應用程序的體系結構
- 18. Intranet應用程序的體系結構
- 19. 如何使用Kernel32.dll獲得處理器ID
- 20. C:fork或fork中的多處理應用程序的體系結構+ exec
- 21. 無論目標機器的體系結構如何獲得Program Files的路徑
- 22. 使用Mono.Cecil的.NET程序集目標體系結構
- 23. 與facebook的Web應用程序集成(體系結構問題)
- 24. ASP.NET 2.0 - ClickOnce - 處理器體系結構變更
- 25. Linux Kernel 0.01支持什麼? (處理器體系結構)
- 26. 使用JS或PHP檢查用戶處理器體系結構
- 27. 處理器體系結構不匹配 - Visual Studio,Nuget,Stylecop
- 28. 多處理器體系結構和Ring 3
- 29. 處理文件系統更改的最佳體系結構?
- 30. 將數據導入iOS應用程序 - 處理數據的體系結構
除非你使用'ReflectionOnlyLoadFrom'。 http://stackoverflow.com/q/9470199/103167 – 2012-02-27 18:38:06