在Visual Studio 2008中一次构建多个解决方案的最简单方法

时间:2011-11-29 11:19:23

标签: visual-studio-2008 build build-automation

是否有一种简单直接的方法可以批量生成多个VS2008解决方案?我想一次构建50多个Release,也许还可以构建Debug。

在命令行中使用MSBuild的麻烦在于,很难找出哪些解决方案/项目无法构建,这些信息至关重要。有没有人有好的建议?

3 个答案:

答案 0 :(得分:2)

您可以使用MSBuild脚本构建所有解决方案,并仅为错误或警告或完整诊断日志指定不同的日志文件。您最多可以使用十个文件记录器。

定义用于构建解决方案的MSBuild脚本。在ProjectToBuild项集合中添加所有解决方案文件:

 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <ProjectToBuild Include="a1.sln…">
            <Properties>Configuration=Debug</Properties>
        </ProjectToBuild>
        <ProjectToBuild Include="a2.sln">
            <Properties>Configuration=Release</Properties>
        </ProjectToBuild>
    </ItemGroup>
    <Target Name="Build">
        <MSBuild Projects="@(ProjectToBuild)"/>
    </Target>
</Project>

使用/ flp MSBuild command line argument为错误,警告和完整诊断日志指定不同的日志文件。

msbuild.exe ScriptAbove.proj /filelogger /flp1:logfile=errors.txt;errorsonly /flp2:logfile=warnings.txt;warningsonly /flp3:LogFile=FullDiagnostic.log;Verbosity=diagnostic

答案 1 :(得分:1)

您可以从批处理文件中调用devenv(Visual Studio)来构建项目,例如:

  devenv projectfile /rebuild release /out logfile

这将在没有显示IDE的情况下安静地运行。日志文件将从VS-IDE中接收您通常在输出窗口中看到的消息。

如果构建正常,则返回码为0,否则为1。

Here is a list of all devenv command line switches

答案 2 :(得分:0)

您可以为批处理文件中的每个解决方案调用MSBuild,将输出重定向到文件,这样您就可以看到失败的内容。