【发布时间】:2011-11-29 11:19:23
【问题描述】:
有没有简单直接的方法可以批量构建多个VS2008解决方案?我想一次构建超过 50 个作为 Release,也许还作为 Debug 构建。
仅在命令行上使用 MSBuild 的问题在于很难找出哪些解决方案/项目未能构建,而这些信息是必不可少的。有人有好的建议吗?
【问题讨论】:
标签: visual-studio-2008 build build-automation
有没有简单直接的方法可以批量构建多个VS2008解决方案?我想一次构建超过 50 个作为 Release,也许还作为 Debug 构建。
仅在命令行上使用 MSBuild 的问题在于很难找出哪些解决方案/项目未能构建,而这些信息是必不可少的。有人有好的建议吗?
【问题讨论】:
标签: visual-studio-2008 build build-automation
您可以使用 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
【讨论】:
您可以从批处理文件中调用 devenv (Visual Studio) 来构建您的项目,例如:
devenv projectfile /rebuild release /out logfile
这将在不显示 IDE 的情况下安静地运行。日志文件将接收您通常在 VS-IDE 中构建的输出窗口中看到的消息。
如果构建成功,则返回码为 0,否则为 1。
【讨论】:
您可以在批处理文件中为每个解决方案调用 MSBuild,将输出重定向到文件,这样您就可以看到失败的原因。
【讨论】: