Ответ 1
Поскольку вы имеете дело со строительством, вы можете захотеть заменить ваш командный файл файлом MSBuild. Например:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<SolutionsToBuild Include="MySolution.sln"/>
<Projects Include="Proj1.csproj"/>
<Projects Include="Proj2.csproj"/>
<Projects Include="Proj3.csproj"/>
</ItemGroup>
<Target Name="BuildAll">
<!-- Just executes the DefaultTargets (Build) -->
<MSBuild Projects="@(SolutionsToBuild)"/>
<!-- Call Rebuild if you think its not building correctly -->
<MSBuild Projects="@(Projects)"
Targets="Rebuild"/>
</Target>
</Project>
Затем вы просто вызываете файл msbuild.exe в этом файле с помощью
msbuild.exe Build.proj /t:BuildAll
Поскольку вы сказали, что хотите создать конкретные проекты после того, как построено решение, просто поместите их в Project ItemGroup, как показано, и используйте задачу MSBuild для их создания после того, как решение было построено. Я указал цель Rebuild, чтобы убедиться, что вы получили чистую сборку.