我有一個運行在32位機器的.NET託管應用程序。 我很好,將它編譯爲64位並將其移植到64位機器上。 但是我依賴於一些第三方DLL是32位程序集。 我可以將64位和32位程序集一起在64位機器上執行嗎?
謝謝!
我有一個運行在32位機器的.NET託管應用程序。 我很好,將它編譯爲64位並將其移植到64位機器上。 但是我依賴於一些第三方DLL是32位程序集。 我可以將64位和32位程序集一起在64位機器上執行嗎?
謝謝!
若它們在同一進程中運行。
OS上的進程無法加載不同「比特級」的程序集。一旦選定,所有組件必須符合。通常,如果您嘗試將32位DLL加載到64位進程中,您將得到一個BadImageFormatException
,反之亦然。
三個選項:
在64位操作系統上運行32位操作系統本身並沒有什麼錯誤,不要陷入它認爲速度會變慢的陷阱。
從我自己的經驗來看,沒有。
我開發了一個系統,它依賴於我無法控制的32位iSeries COM庫。遇到問題,並通過編譯32位版本的應用程序來修復它們。
只需確保不是針對任何CPU,而是將Visual Studio設置爲編譯爲x86。
另外請注意,您生成的DLL和可執行文件的位置稍有不同。
例如
斌\ 86 \調試
代替
斌\調試
不要忘記,如果你運行32位它可能不會更慢,但你可能會用完內存。