何时需要使用 x86 或 x64 目标平台?

use*_*399 5 .net c# 64-bit x86 anycpu

我已经研究了有关在visual studio中使用不同目标平台选项构建应用程序的信息,但我仍然无法理解以下内容:

我们什么时候需要设置 x86 或 x64 目标?
与设置“任何 cpu”相比,设置特定目标平台(x86 或 x64)有何优势?
总是设置“任何cpu”不是更容易吗?

Vib*_*nRC 3

截至目前,平台目标中有三个选项。x86、x64、任何 CPU。更糟糕的是,有一个名为“首选 32 位”的复选框。

\n\n

当您开发应用程序时,您必须确保启用“Any CPU”禁用“Prefer 32bit”以获得最大兼容性。

\n\n

然而,有时您将使用本机调用来平台特定的 API(例如:您正在调用 32 位本机 dll)。然后启用 Any CPU 将在 64 位操作系统中将您的应用程序作为 64 位进程运行。这将在运行时引入异常。您应该针对 x86 平台。对于 64 位本机调用也是如此,您应该仅将其定位为 x64。

\n\n

让我们看看为什么选择 32 位。Windows 有一个名为 ARM 的新目标类型(自推出Prefer 32 位以来,Windows 8 ARM 32 位)。当启用此选项并选择任何 CPU时。编译为 x86 的 .NET 应用程序将无法在 ARM Windows 系统上运行,但 \xe2\x80\x9cAny CPU 32 位首选\xe2\x80\x9d 应用程序将成功运行。

\n\n

由于没有人使用 Windows 8 ARM,因此今后将禁用“首选 32 位”。Windows 10 ARM 已解决此问题。

\n