使用MSBuild构建包含x86和“任何cpu”项目的解决方案的所有项目
问题描述:
是否可以从MSBuild中构建包含x86和“任何cpu”项目的解决方案的所有项目?使用MSBuild构建包含x86和“任何cpu”项目的解决方案的所有项目
理想情况下,我想要一个无论项目是否具有多个平台都可以工作的解决方案,因为当您添加一个默认为x86的项目时通常并不明显,而且您必须花费大量时间来弄清为什么项目未建成。
答
如果您的解决方案具有要针对多个平台,它可以定义多种配置打造您的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将建立匹配,要么任何项目配置。
答
尝试使用称为“混合平台”的解决方案级平台。 See this post。
msbuild.exe MixedProjects.sln /p:"Platform=Mixed Platforms" /p:Configuration=Debug
是否要将所有内容都构建为“任何CPU”或“x86”? – 2012-02-28 14:21:47
我想将“任何CPU”解决方案构建为“任何CPU”,将x86解决方案构建为x86。如果它与VS中内置的项目一样,它会很好。 – Helephant 2012-02-28 14:25:46
最大的问题是你需要知道MSBuild有这种怪癖,否则你会浪费大量时间来弄清楚为什么这个项目没有建立。 – Helephant 2012-02-28 14:26:36