Der Msbuild Weg dies zu tun wäre, die Configuration Manager
(Build -> Configuration Manager
) in Visual Studio zu verwenden, um die Projekte auf die Lösung Config/Plattform abzubilden.
Im Configuration Manager
:
wählen ARM
als Active Solution Platform
und deaktivieren Build
für alle *.UnitTests
Projekte und sicherzustellen, dass die anderen Projekte Build
geprüft haben.
Wählen Sie x86
als Active Solution Platform
Aktivieren/Deaktivieren Sie Build
basierend auf welche Projekte Sie erstellen möchten.
Dies bedeutet, dass, wenn Sie Ihre Lösung für Platform=ARM
, alle Projekte mit Ausnahme für den *.UnitTests
bauen, bauen. Und ähnlich für Platform=x86
.
Sie können mehr darüber lesen here.
Update:
Wenn Sie mehr kundenspezifische Logik müssen Projekte zur Auswahl zu bauen, dann könnten Sie eine neue Top-Level-Build-Datei wie erstellen:
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Condition="'$(Platform)' == 'ARM'">
<ARMProjects Include="abc\*.csproj" Exclude="**\*.UnitTests.csproj"/>
<ARMProjects Include="def\*.csproj" Exclude="**\*.UnitTests.csproj"/>
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'x86'">
<!-- Create a group named X86Projects and select the projects as you need to -->
</ItemGroup>
<Target Name="Build">
<MSBuild Project="@(ARMProjects)" Targets="Build" Condition="'$(Platform)' == 'ARM'"/>
<MSBuild Project="@(X86Projects)" Targets="Build" Condition="'$(Platform)' == 'x86'"/>
</Target>
</Project>
Tweak die Build-Ziele oder die entsprechenden ausgewählten Projekte auf deine Bedürfnisse.
Interessante Frage, ich bin auch an einer Antwort interessiert. Vielleicht kann [diese Antwort] (http://stackoverflow.com/a/17712386/4534262) helfen. Zusammen mit [diesem Artikel] (http://www.codeproject.com/Tips/177770/Creating-MSBuild-projects-from-sln-files). – Nikerboker