【问题标题】:Building all projects of a solution with a mixture of x86 and "any cpu" projects using MSBuild使用 MSBuild 构建混合了 x86 和“任何 cpu”项目的解决方案的所有项目
【发布时间】:2012-03-18 00:18:57
【问题描述】:

是否可以使用 x86 和 MSBuild 中的“任何 cpu”项目构建解决方案的所有项目?

理想情况下,我想要一个无论项目是否有多个平台都可以工作的解决方案,因为当您添加一个默认为 x86 的项目时,它通常并不明显,并且您必须花费大量时间来弄清楚您的项目的原因没有被建造。

【问题讨论】:

  • 您想将所有内容都构建为“Any CPU”还是“x86”?
  • 我想将“Any CPU”解决方案构建为“Any CPU”,将 x86 解决方案构建为 x86。如果它的行为与在 VS 中构建项目时的行为相同,那就太好了。
  • 最大的问题是您需要知道 MSBuild 有这种古怪之处,否则您将浪费大量时间来弄清楚为什么项目没有构建。

标签: msbuild x86 anycpu


【解决方案1】:

尝试使用称为“混合平台”的解决方案级平台。 See this post.

  msbuild.exe MixedProjects.sln /p:"Platform=Mixed Platforms" /p:Configuration=Debug

【讨论】:

    【解决方案2】:

    如果您的解决方案有多个您想要定位的平台,则可以定义多个配置以在您的 tfsbuild.proj 文件中构建:

    <ItemGroup>
      <ConfigurationToBuild Include="$(BuildFlavour)|Any CPU">
        <FlavorToBuild>$(BuildFlavour)</FlavorToBuild>
        <PlatformToBuild>Any CPU</PlatformToBuild>
      </ConfigurationToBuild>
      <ConfigurationToBuild Include="$(BuildFlavour)|x86">
        <FlavorToBuild>$(BuildFlavour)</FlavorToBuild>
        <PlatformToBuild>x86</PlatformToBuild>
      </ConfigurationToBuild>
    </ItemGroup>
    

    MSBuild 和 TFSBuild 将构建匹配任一配置的任何项目。

    【讨论】:

      猜你喜欢
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-07
      • 2016-04-26
      • 1970-01-01
      • 2020-05-16
      • 2011-06-07
      相关资源
      最近更新 更多