【问题标题】:What is the difference between Microsoft.NET\Framework and Microsoft.NET\Framework64?Microsoft.NET\Framework 和 Microsoft.NET\Framework64 有什么区别?
【发布时间】:2011-05-31 12:45:02
【问题描述】:

我想知道 .NET 模式 x86 和 x64 之间的区别。

  1. 两种模式有什么区别?

  2. 我可以使用 .NET x64 和 .NET x86 编译我的库吗?

  3. 如果我选择 x64 而不是 x86,对我有什么不同吗?

  4. .NET x64 有什么优势?

  5. 如果我想使用 .NET x64,是否需要安装任何特殊的东西?

【问题讨论】:

  • 通常,您不会为 32 位或 64 位显式编译库,而是为“任何 cpu”编译库,并让目标机器(或您的主应用程序)选择哪个运行。
  • 如果选择一种模式,应用会更轻,但无法在其他平台上运行...

标签: .net 64-bit 32bit-64bit 32-bit


【解决方案1】:

复杂的问题,我会尽量简化:

  1. 可以同时为 x86(32 位)和 x64(64 位)编译任何 .Net 应用程序。实际上,它们默认情况下会这样做。您可以通过在项目属性的构建选项卡中更改目标 CPU 来更改此设置。支持的目标是“Any”(将根据操作系统支持即时编译为 32 位或 64 位),“x86”将编译为适用于所有平台的 32 位,“x64”将编译为 64 -bit 仅适用于 64 位平台。

  2. 是的。往上看。另请注意,有时会执行第二级编译,即 NGEN。它为特定的 CPU 类型创建本机映像。但是,如果你搞砸了,你已经知道了。

  3. 对于 .dll,为它们选择“任何”CPU。对于 .EXE(入口点),您必须选择 Any、x86 或 x64。有一些事情需要考虑: x86 .Net 应用程序访问本机 Windows .dll 文件 (interpo) 需要 x86 .dll 文件。因此 64 位应用程序无法访问 32 位 API 调用,反之亦然。这通常是 .Net 应用程序在 64 位操作系统上失败的原因。解决此问题的方法是引用正确的 .dll 或简单地将 .Net 应用程序设置为属性下的 x86(32 位)。如果将所有其他依赖项设置为“Any”,则所有其他依赖项将在即时编译期间自动变为 32 位。

  4. 64 位的优点很复杂。根据您的应用程序的功能,有优点和缺点。最明显的优势是您的应用程序可以突破 2GB 内存障碍。缺点如 #3 中所述,如果您引用 64 位 .dll,您的应用将无法在 32 位操作系统上执行。

  5. 一切都是开箱即用的。除了上面所有的东西,别担心。 :)

【讨论】:

  • 如果我必须更改 machine.config,我应该选择哪个文件夹? FW64 还是 FW?
【解决方案2】:
  1. 有 32 位或 64 位平台(操作系统)的模式
  2. 是的,你可以 - 实际上 VS 在 x86 计算机上安装了 32 位版本的 CLR,在 64 位 Windows 上安装了 32 位和 64 位(两者)版本的 CLR。由于 VS 是 32 位应用程序,它在 64 位计算机上运行在 WOW64 下。
  3. 许多应用程序在 32 位 CLR 和 64 位 CLR 上的行为相同。但是,可能存在一些差异(例如,不正确的平台调用使用 Int32 作为句柄而不是 IntPtr)
  4. 与 64 位操作系统相比 x86 操作系统的优势相同
  5. 如果您使用的是 64 位 Windows 和 VS2010,那么您拥有开发 .net x64 所需的一切

【讨论】:

    【解决方案3】:
    1. 如果您正在为任何 CPU 编译代码,x64 会尝试将本机、外部 DLL 加载为 x64 版本。如果该 DLL 是 32 位的,那可能会有问题。它会引发异常。
    2. 是的,您可以将其构建为任何 CPU
    3. 秒。 1
    4. 它(可以)在内部使用操作系统的 x64 优势,例如 4GB+ 内存等。
    5. 不,这是由 .NET 安装程序默认完成的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      • 2012-04-17
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 2022-06-21
      相关资源
      最近更新 更多