1
我目前正在將我的項目從x86移植到x64。它是一個插件,絕對必須以x64運行,因爲主機也是如此。應用程序的如何創建x64 DynamicAssembly
部分創建一個動態組裝:
AppDomain.CurrentDomain.DefineDynamicAssembly(...)
然後將保存到磁盤。我用dumpbin /headers
檢查了它,它在x86中!
如何強制組件從代碼中獲得x64?
我目前正在將我的項目從x86移植到x64。它是一個插件,絕對必須以x64運行,因爲主機也是如此。應用程序的如何創建x64 DynamicAssembly
部分創建一個動態組裝:
AppDomain.CurrentDomain.DefineDynamicAssembly(...)
然後將保存到磁盤。我用dumpbin /headers
檢查了它,它在x86中!
如何強制組件從代碼中獲得x64?
這是完全正常的,包含IL代碼的程序集總是打包在一個具有32位頭的DLL中。與Project + Properties,Build選項卡,Platform Target =任何CPU相同。
請記住:純.NET程序集只包含數據,無代碼。 JIT編譯器是否將IL轉換爲32位或64位代碼取決於啓動EXE的位數。
問題是,主機不會運行插件。更糟的是:我也沒有收到錯誤信息。這就是爲什麼我懷疑主機動態加載程序集時遇到困難。主機是一個本地應用程序,提供.NET可擴展性功能。 – 2010-06-24 07:28:57
不好意思。今天剛剛開始使用電腦,一切正常。感謝您解決這個問題! – 2010-06-24 07:47:29