Windows 2008 64位上.NET应用程序的模式

时间:2009-03-13 20:09:01

标签: .net x86 64-bit

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

6 个答案:

答案 0 :(得分:5)

如果它的目标是64位架构,它将运行64位,或者设置为在任何平台上运行。

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

这与64位Vista一样。

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

.net代码被复制到目标'任何'平台(检查项目构建配置)将从IL编译成64位机器代码指令。如果你指定32位然后它将编译成32位然后转换,就好像它是在64位操作系统上运行的32位机器代码!

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

编辑:XNA是您希望以特定方式定位32的示例,请查看以下内容: http://www.brianpeek.com/blog/archive/2007/11/13/x64-development-with-net.aspx

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

答案 4 :(得分:0)

在我的问题here和答案之后,我会考虑允许应用程序以64位运行。与更成熟的32位JIT相比,64位JIT似乎非常有限。

答案 5 :(得分:0)

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

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