批量编译解决方案中的一个项目

时间:2014-10-16 15:01:30

标签: c++ tfs build

假设我有一个包含三个项目的解决方案

SolutionA
    ProjectA
    ProjectB
    ProjectC

整个解决方案设置为AnyCPU。但是,ProjectB是一个托管的C ++项目,我希望它(并且只有它)来构建Win32和x64。我正在使用TFS每晚执行这些构建。有没有什么好办法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

.sln文件本身无法同时在两个配置或平台中构建相同的项目。一种可能的解决方法是创建一个自定义项目,该项目将由.sln调用,并在其中调用一次projectA两次 - 使用两个不同的Platform参数值。自定义项目文件如下所示:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
    </PropertyGroup>
    <Target Name="build">
        <MSBuild Project="ProjectA.vcxproj" Properties="Platform=Win32;Configuration=$(Configuration)" />
        <MSBuild Project="ProjectA.vcxproj" Properties="Platform=x64;Configuration=$(Configuration)" />
    </Target>
</Project>

为此,您需要执行以下操作。 1.在解决方案中禁用ProjectA的构建(或从.sln中删除它)。 2.将自定义项目添加到.sln。

另外,请记住,您不能将显式/ p:Platform选项传递给