如何使.NET可执行文件在64位框架上运行

时间:2009-02-11 08:24:25

标签: .net 64-bit

我有一个默认为32位的可执行文件。它没有源代码,我想在系统上保留32位和64位框架。有没有办法让这个可执行文件在64位.NET框架上运行?

5 个答案:

答案 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位模式。但是,如果管理所有代码,您只能这样做。您应该阅读博客文章了解详细信息。