我有一個默認爲32位的可執行文件。它沒有源代碼,我想在系統上保留32位和64位的框架。有沒有辦法讓該可執行文件在64位.NET框架上運行?如何使.NET可執行文件在64位框架上運行
回答
使用corflags工具翻轉'64位是好的,如果有」標誌
這blog post解釋了這個結合實例和一些進一步的鏈接。
如果你有源代碼重新編譯任何VS 2005和以上將允許你改變設置,使它願意運行爲64位。
你有源代碼還是隻有埃克?
如果你有源代碼,你可以把它編譯成64位, 如果你不能使用反射器,請獲取源代碼並重新編譯爲64位。
如果您的應用程序需要在32位和64位系統上運行,最好的方法是將編譯器配置爲強制以32位模式運行二進制文件。這將強制任何64位系統在32位仿真模式下運行您的應用程序。 (項目屬性 - >生成 - >目標平臺 - >「x86」而不是「任何CPU」)
否則,您必須提供兩個二進制版本的應用程序:一個32位二進制和一個64位二進制。
如果可執行文件是用.NET編寫的並且都是託管代碼,那麼在64位下運行它應該沒有問題。用於x64的.Net-Framework附帶32位和64位代碼的CLR。
考慮由Scott Hanselman在閱讀我這篇文章,它涵蓋了問題:
Back to Basics: 32-bit and 64-bit confusion around x86 and x64 and the .NET Framework and CLR
斯科特Hanselman的最近blogged這一點。
編寫託管代碼是不必擔心任何的x86 (32位)與64位(64位),細節不錯 方式。 編寫託管代碼,編譯,它會 無處不在。
因此,實際上,如果您爲「Any CPU」構建它,它應該自動在64位操作系統上以64位模式運行。但是,只有在所有代碼都被管理的情況下才能做到這一點。您應該閱讀博客條目以獲取詳細信息。
我想它只針對x86編譯。 – 2009-02-11 08:48:44
- 1. 在64位Powershell可執行文件上執行cmdlet
- 2. 如何在可執行文件中包含.NET框架庫
- 3. 如何在32位或64位配置中以編程方式運行ANY CPU .NET可執行文件?
- 4. 帶DMD的64位可執行文件
- 5. Android不可執行:64位ELF文件
- 6. 從32位代碼在System32中運行64位可執行文件
- 7. 建議任何方式使64位上運行的可執行文件構建在32位ubuntu
- 8. 如何在64位Windows上運行Perforce?
- 9. Procmon如何在64位Vista +上運行?
- 10. 如何在Windows XP上使用Perl運行可執行文件?
- 11. 如何在Android上使用GDB運行Dalvik可執行文件?
- 12. 無法在.Net Framework 2.0上運行我的可執行文件
- 13. 在C#中使用框架陶在64位運行程序opengl
- 14. 如何在Qt安裝程序框架中運行可執行文件?
- 15. Quartz .NET Config可執行文件位置
- 16. 爲什麼在64位FreeBSD v8.1上運行32位可以執行ELF錯誤?
- 17. 我如何執行.NET框架
- 18. c + +可執行文件不能在Windows 7中運行 - 64位不兼容
- 19. Qt 64位可以生成32位可執行文件嗎?
- 20. 64位python可以創建32位Windows可執行文件
- 21. Vistual studio 2008可執行文件無法在沒有.net框架的情況下在目標系統上運行
- 22. 在64位機器上運行32位.NET應用程序
- 23. 如何在Raspberry Pi上運行可執行文件
- 24. 可執行文件如何在O/S上運行?
- 25. 如何運行在OS X上的可執行文件
- 26. 如何在Raspbian的python上運行可執行文件?
- 27. 在32位或64位matlab上運行?
- 28. 如何在Info.plist中指定32位和64位可執行文件
- 29. 在Windows 64位上運行的Matlab 32位編譯MEX文件
- 30. 32位.net 4框架沒有安裝在64位電腦上
實際上,現在你提到你沒有源代碼,我必須補充說,讓它在64位.NET中運行可能不是一個好主意。它可能具有外部依賴性等。 – 2009-02-11 08:50:46