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

gpfsuwkq  于 2023-04-22  发布在  .NET
关注(0)|答案(5)|浏览(228)

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

dgsult0t

dgsult0t1#

使用corflags工具来翻转'64位是好的,如果可用'标志
这个blog post用例子和一些进一步的链接解释了这一点。
如果你有源代码重新编译与任何VS 2005和以上将允许您更改设置,使其愿意运行为64位。

vcirk6k6

vcirk6k62#

如果可执行文件是用.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

pod7payv

pod7payv3#

你有源代码还是只有Exe?
如果你有源代码,你可以把它编译成64位,如果你没有,你可以使用反射器获取源代码,然后重新编译成64位。

jutyujz0

jutyujz04#

如果你的应用程序需要在32位和64位系统上运行,一个好的方法是配置编译器强制二进制运行在32位模式下。这将强制任何64位系统在32位模拟模式下运行你的应用程序。(项目属性-〉构建-〉目标平台-〉“x86”而不是“任何CPU”)
否则,您必须提供应用程序的两个二进制版本:32位二进制和64位二进制。

c7rzv4ha

c7rzv4ha5#

Scott Hanselman最近谈到了这一点。
编写托管代码是一种很好的方法,可以让你不必担心任何x86(32位)和x64(64位)的细节。编写托管代码,编译,它就可以在任何地方工作。
因此,实际上,如果你为“任何CPU”构建它,它应该在64位操作系统上自动运行在64位模式下。但只有当所有代码都被管理时,你才能做到这一点。你应该阅读博客文章以了解详细信息。

相关问题