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

时间:2012-03-07 20:56:53

标签: msbuild batch-file

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

我被要求制作一个批处理文件,允许用户在一个目录中构建所有解决方案,在一个命令中包含七个子文件夹。我知道如何在一个文件夹中构建一个解决方案(使用msbuild mysolution.sln),但是从七个不同的文件夹中构建许多解决方案是我无法实现的。

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

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

1 个答案:

答案 0 :(得分: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>
    
  2. 创建名为BuildAll.cmd的批处理文件,其中包含以下内容:(更改msbuild.exe的路径取决于您使用的.NET Framework版本)

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild buildall.targets
    
  3. 运行/执行BuildAll.cmd

  4. 有关递归文件夹遍历的更多详细信息,请参阅MSDN: How to: Select the Files to Build,尤其是“使用通配符指定输入”部分