是否有一种简单直接的方法可以批量生成多个VS2008解决方案?我想一次构建50多个Release,也许还可以构建Debug。
在命令行中使用MSBuild的麻烦在于,很难找出哪些解决方案/项目无法构建,这些信息至关重要。有没有人有好的建议?
答案 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。
答案 2 :(得分:0)
您可以为批处理文件中的每个解决方案调用MSBuild,将输出重定向到文件,这样您就可以看到失败的内容。