我想知道.NET模式x86和x64之间的区别。
两种模式有什么区别?
我可以编译我的库,例如使用.NET x64和.NET x86吗?
如果选择x64而不是x86,对我来说会有什么不同吗?
.NET x64有什么优势?
如果我想使用.NET x64,是否必须安装任何特殊内容?
答案 0 :(得分:14)
复杂的问题,我会尽量简化:
可以同时为x86(32位)和x64(64位)编译任何.Net应用程序。实际上他们默认做。您可以通过在项目属性中的“生成”选项卡中更改目标CPU来更改此设置。支持的目标是“Any”(根据操作系统支持将Just-In-Time编译为32或64位),“x86”将编译为32位,适用于所有平台,“x64”将编译为64 -bit仅适用于64位平台。
是。往上看。还要注意,有时会执行第二级编译,那就是NGEN。它为特定CPU类型创建本机映像。但是,如果你搞砸了这个,你就知道了。
对于.dll,为他们选择“任何”CPU。对于.EXE(入口点),您必须选择Any,x86或x64。有一些事情需要考虑:x86 .Net应用程序访问本机Windows .dll文件(插入)需要x86 .dll文件。因此,64位应用程序无法访问32位API调用,反之亦然。这通常是.Net应用程序在64位操作系统上失败的原因。解决这个问题的方法是引用正确的.dll或者只是将.Net应用程序设置为属性下的x86(32位)。如果它们设置为“Any”,则所有其他依赖项将在即时编译期间自动变为32位。
64位的优点很复杂。根据您的应用程序的作用,有优点和缺点。最明显的优势是您的应用程序可以打破2GB内存屏障。缺点是在#3中解释,如果您引用64位.dll,您的应用程序将无法在32位操作系统上执行。
一切都是开箱即用的。除了以上所有内容之外,不要担心任何事情。 :)
答案 1 :(得分:0)
答案 2 :(得分:0)