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

3

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


1
实际上,既然你提到你没有源代码,那么我必须补充说,让它在64位的.NET中运行可能不是一个好主意。它可能有外部依赖关系等问题。 - Dave Van den Eynde
5个回答

5

使用corflags工具来翻转“64位可用”标志

这篇博客文章通过示例和一些进一步的链接来解释这个问题。

如果您有源代码,重新编译任何VS 2005及以上版本都可以让您更改设置,使其愿意作为64位运行。


1

0
你有源代码还是只有可执行文件?
如果你有源代码,你可以直接编译成64位的程序, 如果没有,你可以使用反编译工具获取源代码并重新编译成64位的程序。

0
如果您的应用程序需要在32位和64位系统上运行,一个好的方法是配置编译器强制二进制文件以32位模式运行。这将强制任何64位系统以32位仿真模式运行您的应用程序。(项目属性->生成->目标平台->选择“x86”而不是“Any CPU”)
否则,您必须提供两个二进制版本的应用程序:32位二进制和64位二进制。

0

Scott Hanselman 最近 写了一篇博客 关于这个问题。

编写托管代码是不必担心任何 x86 (32 位) 或 x64 (64 位) 细节的好方法。编写托管代码、编译,然后它将在任何地方工作。

因此,如果您将其构建为“Any CPU”,它应该会自动在 64 位操作系统上运行为 64 位模式。但如果所有代码都是托管的,您才能这样做。有关详细信息,请阅读博客文章。


我猜它只编译了x86架构。 - Sedat Kapanoglu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接