2014-10-16 39 views
1

說我有一個包含三個項目批溶液中的編譯只有一個項目

SolutionA 
    ProjectA 
    ProjectB 
    ProjectC 

整體解決方案全力打造集作爲AnyCPU的解決方案。但是,ProjectB是一個託管的C++項目,我希望它(只有它)才能構建Win32和x64。我正在使用TFS每晚執行這些構建。有沒有什麼好的方法來完成這個?

回答

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:平臺選項傳遞給