如何搜索目录结构并使用MSBuild获取.sln文件名

时间:2011-11-02 18:44:38

标签: .net c#-4.0 msbuild continuous-integration msbuild-task

我正在为少数项目设置构建环境。每个项目都有多个解决方案。我需要构建将位于根目录中的不同文件夹中的所有解决方案。文件夹的杠杆与根目录中的解决方案文件可以有所不同。也就是解决方案文件可以嵌入一个文件夹,而文件夹又可以与另一个文件夹一起使用,依此类推。如何搜索根目录结构并使用MSBuild获取所有解决方案(.sln)文件名及其路径的列表,以便我可以构建这些解决方案?

类似地,我必须搜索并获取从构建生成的所有dll和exe的列表,以便我可以对它们运行静态代码分析。我正在寻找一种方法,我可以搜索并获取程序集及其文件路径列表。

1 个答案:

答案 0 :(得分:3)

这将查找并报告放置在其中的文件的文件夹下的所有解决方案文件:

<Target Name="FindSolutions">
   <ItemGroup>
      <SolutionFile Include="$(MSBuildThisFileDirectory)\**\*.sln" />
   </ItemGroup>
   <Message Text="Found '%(SolutionFile.Identity)'" />
</Target>

密钥是**,它以递归方式匹配所有文件夹。