主动解决方案平台VS Project Platform VS Platform目标

时间:2012-02-10 08:45:44

标签: c# .net visual-studio

我希望我的应用程序是为x64构建的(因为我使用的是x64 dll)。 在配置管理器中,我将“Active solution platform”设置为“x64” 但是在项目列表中,Platform设置为“x86”。 项目属性中的“平台目标”也设置为“x86”

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

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

例如,我可以将Active解决方案平台设置为x64,将Project平台设置为x86,将Project target设置为x64。那意味着什么?

有人可以描述这些选项究竟是什么意思以及它们应该如何一起使用?如何编译到x64?

1 个答案:

答案 0 :(得分:25)

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

默认情况下,x64设置将项目设置为专门为x64编译,但是可以通过项目Platform Target属性在项目属性中进行更改(尽管将现有配置集的目标更改为非常困惑除了名字之外的任何东西)。

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

AnyCPU设置将导致程序集JIT:ed to

  • x86在32位平台上
  • 64位平台上的x64

有关详细信息,请参阅this question

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

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

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