我可以在32位系统上运行在64位系统上开发的C#应用​​程序吗?

我可以在32位系统上运行在64位系统上开发的C#应用​​程序吗?

问题描述:

各位程序员,如果我在64位系统上创建了一个C#应用程序,我将能够在32位系统(或64位32位系统)上运行而不会出现问题吗?我可以在32位系统上运行在64位系统上开发的C#应用​​程序吗?

你应该建立一个CPU类型设置为32位的应用程序可执行文件,以及任何设置为“任何CPU”的类库。除非你真的需要该CLR强制64位模式,32-bit can be more efficient。 (这是VS2010,IIRC中的默认设置。)

如果您引用的是任何本地库,它可能会变得更加有趣,IIRC - 您需要确保您在每个库上都使用了正确版本的库建筑。说实话,我在这方面并不是非常有经验。 This blog post虽然可以帮助你。

+2

这是正确的。如果尝试加载一个错误位数的程序集,则会抛出'BadImageFormatException'。至于COM,您的应用程序将无法找到正确的组件。 – jgauffin 2011-03-24 11:31:24

+0

为什么需要将CPU类型设置为32位来构建可执行文件? – 2011-03-25 09:48:27

+0

@Anand:你看过我提供的链接了吗? – 2011-03-25 09:56:28

您应该将其编译为任何Cpu配置。有了这个配置,它可以在32/64位无问题地工作(如果你的代码中有com interop或者PInvoke是一个更长的故事)