如果某個應用程序中引用的某些程序集僅使用32位編譯,將加載.NET(64位與32位)的哪個版本(而不是AnyMachine)設置?如果至少有一個引用的程序集只被編譯爲32位,應用程序仍將以64位運行還是將被強制以32位運行?該應用程序正在運行.NET 3.5。使用64位與32位程序集的.NET版本
回答
位岬通過在EXE的平臺目標設置決定運行。沒有任何機制可以確保引用僅32位程序集的EXE也將被強制以32位模式運行。程序集將無法加載BadImageFormatException。
如果你的程序依賴於這樣一個DLL,那麼你必須必須強制你的EXE項目上的Platform Target從AnyCPU到x86。
該應用程序將被強制爲32位
如果程序集是動態加載的,並且進程是64位,則32位程序集將無法加載。 – EricLaw 2010-05-01 17:38:50
如果引用的程序集編譯爲AnyCPU,但是使用非託管DLL,那麼如果不提供64位版本的非託管DLL,它將無法運行。 – 2010-05-01 17:40:33
不是由進程的位數決定的主要的可執行文件,如果該模塊引用不同位元的程序集,那麼這些程序將無法加載,不會強制該進程使用不同的位?例如,如果創建可執行文件並將其編譯爲AnyCPU,但它引用了一堆32位程序集,則該進程將在32位操作系統上正常運行,但無法在64位操作系統上加載其他程序集? – 2010-05-01 18:15:22
- 1. 64位程序集的32位指令
- 2. 的Python Enthought 32與64位版本
- 3. 64位或32位版本的WinDBG?
- 4. 使用32位或64位DLL編譯.net應用程序
- 5. .NET 32位開發與64位生產
- 6. ODBC .NET 32位和64位
- 7. 從32位移植到64位版本
- 8. 不同的.NET程序集引用取決於32-64位
- 9. 64位版本內置程序總是比32位更快?
- 10. 爲什麼.NET開發人員提供.NET程序集的32位/ 64位版本?
- 11. 在64位環境中使用32位程序集
- 12. iOS 32與64位應用程序
- 13. 64位.NET應用程序中的32位ActiveX控件
- 14. 32位和64位.NET(4)應用程序之間的差異
- 15. 32位/ 64位Windows/Linux應用程序
- 16. 32位.NET應用程序和64位.NET應用程序有區別嗎?
- 17. 啓動64位進程修改32位和64位.NET machine.config中
- 18. 使用64位紅寶石與32位ODBC驅動程序
- 19. 在64位Windows 7上使用32位版本的ODBC?
- 20. 使用QMAKE構建項目的32位和64位版本
- 21. 使用32位服務啓動cscript的64位版本
- 22. 在.NET中,32位進程如何與64位進程通信?
- 23. 32位dll導入64位.Net應用程序
- 24. 在64位機器上運行32位.NET應用程序
- 25. 64位版本的Visual Studio 2010以32位版本運行
- 26. Java JDK 32位與64位
- 27. SHGetFolderPath()32位與64位
- 28. win32com.client.Dispatch()32-64位程序
- 29. 64位.NET 4.5上的32位GetHashCode(CLR)
- 30. 使用一個設置運行Eclipse 64位和32位版本
它會在應用程序開始時或程序集被使用時失敗嗎? – user31673 2010-05-01 18:20:39
使用時。這可能接近開始。 – 2010-05-01 18:45:02