Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VS2010中为x86和x64处理器编译一个C#项目_C#_Visual Studio 2010_Compilation_X86_64 Bit - Fatal编程技术网

在VS2010中为x86和x64处理器编译一个C#项目

在VS2010中为x86和x64处理器编译一个C#项目,c#,visual-studio-2010,compilation,x86,64-bit,C#,Visual Studio 2010,Compilation,X86,64 Bit,我有一个Windows窗体项目,它是在VisualStudio2010中用C语言编写的。我必须为x86和x64处理器运行exe。每次我更改配置以编译这两种处理器类型时。同时编译x86和x64处理器类型的源代码是否有任何更改?您不需要这样做,除非您在某处使用本机代码。所有内容都可以编译为,这与体系结构/平台无关 如上面和最近的评论所述,使用“任意CPU”选项。您可以使用任意CPU配置。但是,x86和x64程序集都应该在两种类型的处理器上工作,除非您调用本机代码库(例如C、C++、Delphi)。

我有一个Windows窗体项目,它是在VisualStudio2010中用C语言编写的。我必须为x86和x64处理器运行exe。每次我更改配置以编译这两种处理器类型时。同时编译x86和x64处理器类型的源代码是否有任何更改?

您不需要这样做,除非您在某处使用本机代码。所有内容都可以编译为,这与体系结构/平台无关


如上面和最近的评论所述,使用“任意CPU”选项。

您可以使用任意CPU配置。但是,x86和x64程序集都应该在两种类型的处理器上工作,除非您调用本机代码库(例如C、C++、Delphi)。 也就是说,您可以在x86CPU和操作系统上使用x64.NET程序集


有关更多信息,请阅读。

您应该选择
AnyCPU
配置,如果操作系统为32位,应用程序将以32位运行;如果操作系统为64位,应用程序将以64位运行。您应该感谢
JIT
编译器将您的
MSIL
代码转换为宿主环境所需的适当位

但是,您应该记住,如果您使用的驱动程序或其他库不是在同一模式下编译的,您将在部署中发现问题。您将需要这两个库(64/32),并且需要为目标计算机安装/部署正确的库。
(让我想起最初与
ACE/Jet OleDB
提供商的混乱)

为“同时”x86和x64编译的唯一方法是为x86编译。x86,在x64上运行。如果您想要的是在x86或x64中本机运行的东西,建议使用anyCPU。这就是它的用途。它可以编译到MSIL,但x86/x64开关会告诉程序集JIT编译到哪个平台。甚至Microsoft也建议不要使用anyCPU。除非必须使用x64,否则一切都使用x86。@杰克,你能给出具体的参考吗?//任何CPU都可能以许多意想不到的方式咬你——避免!我突然想到:你需要在x86和x64机器上调试你的工作//你不能在x64开发机器上编辑和继续AnyCPU项目//可能会有与第三方库相关的严重问题//你可能需要重新体验昂贵的库//我可以继续下去//x86是明智的选择