0

我的 .NET 应用程序将如何在 Windows 2008 x64 下运行?作为 32 位应用程序还是 64 位应用程序?这有什么区别吗?

4

6 回答 6

5

如果它针对 64 位架构,或者设置为在任何平台上运行,它将运行 64 位。

如果它针对 32 位架构,它将运行 32 位。如果您需要使用本机 DLL,您需要确保它的目标正确。

这将与 64 位 Vista 相同。

于 2009-03-13T20:11:16.043 回答
2

如果您使用“在任何机器上运行”选项编译它,它将作为 64 位应用程序运行。

如果强制它编译为“以 32 位运行”,那么它将在 x64 机器上作为 32 位应用程序运行。

于 2009-03-13T20:10:59.397 回答
0

取决于您如何构建它,以及您应该如何构建它。:-) 如果您没有指定特定型号,那么您的应用程序将在 x86 上以 32 位运行,在 x64 上以 64 位运行。这通常是您想要的。当您在 64 位系统上与 32 位代码进行互操作时,会出现例外情况。例如,如果您调用一个期望“int”为 32 位的 DLL,而您将其传递为 64 位,那么事情很快就会出错。

于 2009-03-13T20:11:59.083 回答
0

编译到目标“任何”平台的.net 代码(查看项目构建配置)将从 IL 编译成 64 位机器代码指令。如果你指定 32bit 那么它会被编译成 32bit 然后转换成 32bit 机器码在 64bit OS 上运行!

编译成 64 位代码时,某些库存在一些兼容性问题。

编辑:XNA 是您希望专门针对 32 的示例,请查看: http ://www.brianpeek.com/blog/archive/2007/11/13/x64-development-with-net.aspx

注意:无论在什么平台上运行,Int 都是 int?不是吗?

于 2009-03-13T20:15:23.957 回答
0

在我的问题答案之后,我会三思而后行是否允许应用程序以 64 位运行。与更成熟的 32 位 JIT 相比,64 位 JIT 似乎真的很有限。

于 2009-03-13T21:13:40.277 回答
0

如果它是一个 ASP.Net 应用程序,您可以将 IIS 配置为在我们的 webapp 的应用程序池上“启用 32 位应用程序”,这样它将模拟 32 位。

所以,最后一个问题是“取决于”

于 2011-12-16T21:59:33.593 回答