我有一个默认为32位的可执行文件。它没有源代码,我想在系统上保留32位和64位框架。有没有办法让这个可执行文件在64位.NET框架上运行?
答案 0 :(得分:4)
使用corflags工具翻转'64 bit is okay if available'标志
这个blog post通过示例和其他一些链接解释了这一点。
如果你有源代码重新编译任何VS 2005及以上版本将允许你更改设置,使其愿意以64位运行。
答案 1 :(得分:1)
如果可执行文件是用.NET编写的,并且是所有托管代码,则在64位下运行它应该没有问题。 .Net-Framework for x64附带了32位和64位代码的CLR。
考虑阅读Scott Hanselman撰写的这篇博文,它涵盖了这个问题:
Back to Basics: 32-bit and 64-bit confusion around x86 and x64 and the .NET Framework and CLR
答案 2 :(得分:0)
您有源代码还是只有Exe?
如果您有源代码,可以将其编译为64位, 如果你不能使用反射器,请获取源代码并将其重新编译为64位。
答案 3 :(得分:0)
如果您的应用程序需要在32位和64位系统上运行,那么最好的方法是配置编译器以强制二进制在32位模式下运行。这将强制任何64位系统以32位仿真模式运行您的应用程序。 (项目属性 - >构建 - >目标平台 - >“x86”而不是“任何CPU”)
否则,您必须提供应用程序的两个二进制版本:32位二进制文件和64位二进制文件。
答案 4 :(得分:0)
Scott Hanselman最近blogged就此发表了这篇文章。
编写托管代码非常好 不必担心任何x86的方式 (32位)与x64(64位)细节。 编写托管代码,编译,它就会 到处工作。
所以实际上,如果你为“Any CPU”构建它,它应该在64位操作系统上自动运行64位模式。但是,如果管理所有代码,您只能这样做。您应该阅读博客文章了解详细信息。