如何知道在构建中使用哪个cpu(x86 x64或AnyCpu)?

jav*_*red 5 c# visual-studio-2010

我正在使用Windows 7和x64 cpu.这是否意味着我应该始终在Visual Studio中使用"x64"选项进行编译?那么"dll",我可以使用x64应用程序中的x86 dll吗?可能还有其他问题吗?

Jam*_*ill 7

本文包含每个选项的简要概述.

这是一个小报价:

默认设置Any CPU表示程序集将在当前运行的CPU上本机运行.这意味着,它将在64位计算机上以64位运行,在32位计算机上以32位运行.如果从64位应用程序调用程序集,它将作为64位程序集执行,依此类推.

如果项目设置为x86,则表示该项目仅作为32位进程运行.64位进程将无法作为X86调用程序集.将项目设置为x86的原因包括依赖于仅在32位可用的本机DLL或假设32位的本机调用.标记为x86的应用程序和程序集仍可在64位Windows上运行.但是他们在WOW64下运行.Visual Studio本身在此仿真模式下运行,因为它是一个32位应用程序.

将项目设置为x64将指定程序集必须在64位Windows下运行.尝试在32位Windows上运行程序集或从32位进程调用程序集将导致运行时错误.


And*_*ber 5

一般来说,你应该一直使用AnyCpu

如果您有特定原因预计会出现兼容性问题,那么您需要根据需要选择 x86 或 x64。

如评论中所述,针对特定体系结构构建的 dll 可能需要您以某种方式构建程序集。这将是你的时候,你会想要做的事需要到,不是别的。