如何一次将批处理文件用于多个目录中的MSBuild解决方案?

use*_*106 3 msbuild batch-file

我是一家初创公司的实习生.我对批处理文件,XML文件,命令提示符或msbuild一无所知.我只知道C#的基础知识.

我被要求制作一个批处理文件,允许用户在一个目录中构建所有解决方案,在一个命令中有七个子文件夹.我知道如何在一个文件夹中构建一个解决方案(通过使用msbuild mysolution.sln),但是从七个不同的文件夹构建许多解决方案超出了我的范围.

可以创建一个批处理文件,允许msbuild查找子文件夹中的所有解决方案文件并一次构建它们吗?

提前感谢任何可以提供帮助的人.

sll*_*sll 13

  1. 将以下目标文件保存buildall.targets在解决方案目录的根目录中

    <Project ToolsVersion="4.0" 
             xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
             DefaultTargets="Default">
    
        <ItemGroup>
            <AllFiles Include=".\**\*.sln"/>
        </ItemGroup>
    
        <Target Name="Default">
             <MSBuild Projects="@(AllFiles)"/>
        </Target>
    
     </Project>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建BuildAll.cmd以以下内容命名的批处理文件:(更改msbuild.exe的路径取决于您使用的.NET Framework版本)

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild buildall.targets
    
    Run Code Online (Sandbox Code Playgroud)
  3. 运行/执行 BuildAll.cmd

请参阅MSDN:如何:选择要构建的文件以获取有关递归文件夹遍历的更多详细信息,尤其是"使用通配符指定输入"部分