【问题标题】:Active solution platform VS Project Platform VS Platform target主动解决方案平台 VS 项目平台 VS 平台目标
【发布时间】:2012-02-10 08:45:44
【问题描述】:

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

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

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

例如,我可以将活动解决方案平台设置为 x64,项目平台设置为 x86,项目目标设置为 x64。这意味着什么?

有人能描述一下这些选项的具体含义以及它们应该如何一起使用吗?如何编译成x64?

【问题讨论】:

    标签: c# .net visual-studio


    【解决方案1】:

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

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

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

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

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

    更多信息请参见this question

    对于您的示例,将 Active 解决方案平台设置为 x64,将项目平台设置为 x86,将项目目标设置为 x64 将意味着在选择该解决方案配置时,项目程序集将仅构建为 64 位的 JIT,如果您尝试在 32 位平台上运行。

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

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

    【讨论】:

    • 疯狂的复杂性,当它看起来足以在项目属性中只有两个开关时(x64 | x86 | Any CPU)。
    • @SerG - 如果只从项目属性中查看,这似乎是正确的,但当您需要为 net452/release/ 构建它时,您可以拥有一个项目文件并拥有多个配置x86、net452/release/x64 和 net461/release/AnyCPU。
    猜你喜欢
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    相关资源
    最近更新 更多