MSBuild-我可以编译子目录中的所有解决方案吗?

MSBuild-我可以编译子目录中的所有解决方案吗?,msbuild,Msbuild,在MSBuild中是否有方法编译文件夹、子文件夹和子文件夹中的所有解决方案。。。在指定的父项下 我们的库附带了一系列示例程序。我想添加到构建过程中,我们知道它们都会编译。您可以为还原和构建操作创建自己的目标。例如: <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" InitialTargets="EntryRestore" DefaultTargets="Entr

在MSBuild中是否有方法编译文件夹、子文件夹和子文件夹中的所有解决方案。。。在指定的父项下


我们的库附带了一系列示例程序。我想添加到构建过程中,我们知道它们都会编译。

您可以为
还原和
构建操作创建自己的
目标。例如:

<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" InitialTargets="EntryRestore" DefaultTargets="EntryMSBuild">

  <ItemGroup>
    <SolutionFile Include="./**/*.sln"/>
  </ItemGroup>

  <Target Name="EntryRestore">

    <Message Text="-----Entry-----" Importance="high"/>
    <Message Text="    Restore    " Importance="high"/>
    <Message Text="-----Entry-----" Importance="high"/>

    <MSBuild Projects="%(SolutionFile.Identity)" Targets="restore"/>
  </Target>

  <Target Name="EntryMSBuild">

    <Message Text="-----Entry-----" Importance="high" />
    <Message Text="     Build     " Importance="high" />
    <Message Text="-----Entry-----" Importance="high" />

    <MSBuild Projects="%(SolutionFile.Identity)" Targets="build"  />
  </Target>

</Project>

MSBuild
任务启动执行指定目标的
MSBuild
。在我们的cas中,它是
restore
build
。It任务使用了“
批处理”
,允许通过元数据迭代项




| | |

迭代解决方案文件并将它们逐个传递给MSBuild(API或命令行)。这是您想要的吗?或者?请将还原目标命名为
restore
,并使用
/restore
命令行开关而不是
InitialTargets
来启动还原。这是确保在还原+生成操作期间正确清除缓存的唯一方法。@MartinUllrich,您能更详细地解释一下吗?
<ItemGroup>
  <SolutionFile Include="$(MyDir)/**/*.sln"/>
</ItemGroup>
&"D:\Visual Studio\MSBuild\15.0\Bin\msbuild.exe" .\Make.targets