2012-02-10 97 views
15

我想让我的应用程序为x64构建(因为我使用的是x64 dll)。 在配置管理器中,我将“主动解决方案平台”设置为“x64” 但是在项目列表中,平台设置为“x86”。 “目标平台”在项目属性也被设置为“86”主动解决方案平台VS项目平台VS平台目标

我完全糊涂了有三个地方设置目标平台:

  • 配置管理:活动解决方案平台
  • 配置管理:项目平台
  • 项目属性:目标平台

比如我可以设置活动解决方案平台到x64,解放军项目tform到x86和项目目标到x64。这意味着什么?

有人可以描述这些选项中的每一个究竟意味着什么以及他们应该如何一起使用?如何编译为x64?

回答

18

Active Solution Platform允许您为每个项目配置特定的配置组合。项目平台允许您为项目进行特定的配置设置。这两个设置实际上并没有说明解决方案和项目将与哪个平台一起构建,它只是一个配置集,您可以更改其实际设置。

默认情况下,x64设置将项目设置为专门针对x64进行编译,但通过项目Platform Target属性在项目属性中可以更改(尽管将现有配置的目标设置更改为除了它的名字以外)。

每个项目的平台目标属性是用于告知为哪个平台编译项目程序集的设置。如果该项目对需要特定平台工作的组件没有任何依赖关系,则建议使用AnyCPU设置。

的AnyCPU设置将导致所述组件为JIT:ED到

  • 86在32个平台
  • 64在64位平台

参见this question进一步的信息。

至于你的例子,将Active解决方案平台设置为x64,将Project platform设置为x86,将Project target设置为x64意味着在选择解决方案配置时,项目组件将被构建为仅JIT到64位,如果发生错误if您试图在32位平台上运行它。

如果您只依赖64位的资源(例如64位dll),则应该使用x64设置。相应地,如果您仅依赖于32位资源,则应使用x86设置。

配置管理器设置可用于更改项目的构建方式,例如,使用x86/x64的不同引用程序集或者甚至调试/发布(如in this question)。配置集表示为可在构建配置中使用的变量,以控制要包含的内容以及为特定配置运行哪些构建任务。用记事本查看一个项目文件,你会看到它是如何使用的。

+4

当项目属性(x64 | x86 |任何CPU)中看起来足以只有两个开关时,会出现疯狂的复杂性。 – SerG 2015-06-15 14:09:24