1. См. Как: создавать конкретные цели в решениях с помощью MSBuild.exe . Как говорится, вы можете использовать команду вроде:
msbuild SlnFolders.sln -target:NotInSlnfolder:Rebuild;NewFolder\InSolutionFolder:Clean
Более конкретно, если у вас есть Project A, B, C
в том же решении (Test.sln), для построения только A и B, вы можете использовать команду вроде:
msbuild Test.sln /t:A;B /p:Configuration="xx" /p:Platform="xx"
Примечание : Чтобы построить таким образом, мы должны убедиться, что A.xxproj
и B.xxproj
определены в файле xx.sln
. По крайней мере, для VS, если мы создадим новый Project C, xx.sln
не будет обновляться, пока мы не нажмем кнопку save all
.
2. И вот еще одно направление, которое подходит для некоторых конкретный сценарий:
Мы можем щелкнуть правой кнопкой мыши узел Solution в VS, выбрать add project=>empty project
, чтобы добавить пустой проект в решение, назовем его MyBuildTool
project. Загрузите его, чтобы отредактировать егоMyBuildTool.vcxproj
файл, добавьте этот вид скрипта внизу (на вкладке Project):
<!--If you're trying to build subset of the solution, any build the projects with different settings-->
<Target Name="CustomBuild" AfterTargets="build">
<MSBuild Projects="..\**\B2.vcxproj" Properties="Configuration=Debug;Platform=x64;OutDir=xxx"/>
<MSBuild Projects="..\**\A2.vcxproj" Properties="Configuration=Release"/>
...
</Target>
<!--If you're building several projects in same settings-->
<Target Name="CustomBuild" AfterTargets="build">
<ItemGroup>
<ProjectsToBuild Include="..\**\A1.vcxproj"/>
<ProjectsToBuild Include="..\**\B1.vcxproj"/>
</ItemGroup>
<MSBuild Projects="@(ProjectsToBuild)" Properties="Configuration=Debug" BuildInParallel="true"/>
</Target>
</Project>
Тогда MyBuildTool.vcxproj теперь является нашим скриптом сборки, если в какой-то конкретной ситуации нам нужнопостроить несколько проектов, мы можем просто запустить команду msbuild.exe MyBuildTool.vcxproj
. Это зависит от использования MSBuild Task .