【问题标题】:Easiest way to build many solutions at once in Visual Studio 2008在 Visual Studio 2008 中一次构建多个解决方案的最简单方法
【发布时间】:2011-11-29 11:19:23
【问题描述】:

有没有简单直接的方法可以批量构建多个VS2008解决方案?我想一次构建超过 50 个作为 Release,也许还作为 Debug 构建。

仅在命令行上使用 MSBuild 的问题在于很难找出哪些解决方案/项目未能构建,而这些信息是必不可少的。有人有好的建议吗?

【问题讨论】:

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


    【解决方案1】:

    您可以使用 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
    

    【讨论】:

      【解决方案2】:

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

        devenv projectfile /rebuild release /out logfile
      

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

      如果构建成功,则返回码为 0,否则为 1。

      Here is a list of all devenv command line switches

      【讨论】:

      • 我认为这可能是我们最终会做的事情...... :)
      【解决方案3】:

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

      【讨论】:

      • 是的,我知道,但是输出是巨大的;想象一下 50 个项目的价值……我不想费力浏览 50 个 MSBuild 文件来查看哪些有效,哪些无效...
      • @JoelinGö - 仍然。您始终可以将标准错误重定向到不同的文件。
      猜你喜欢
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      • 2012-02-26
      • 1970-01-01
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多