我已经看到了一些半相关的问题,但是没有什么能打动这个问题的:
如何同时构建多个Visual Studio项目?
模式是每个解决方案包含几个项目,每个项目都有几个配置。您可以使用“批处理构建”功能来构建所有这些项目/配置。
现在,我需要一种同时“分批构建”多个解决方案的方法(一个命令)。我的研究似乎表明这不是直接可能的。任何解决方法?如果有问题,我正在使用VS 2013。
最佳答案
我不相信您可以在单个Visual Studio实例中构建多个解决方案。只有项目。
但是,我使用msbuild来做到这一点。以下内容已在安装了Visual Studio 2013的情况下进行了测试。
创建master.proj
文件。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Solution Include="../**/*.sln">
<Properties>Configuration=Debug;Platform=Any CPU</Properties>
</Solution>
<Solution Include="../**/*.sln">
<Properties>Configuration=Release;Platform=Any CPU</Properties>
</Solution>
</ItemGroup>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
</PropertyGroup>
<Target Name="Build">
<MSBuild Projects="@(Solution)" BuildInParallel="true" Targets="Build" />
</Target>
<Target Name="Clean">
<MSBuild Projects="@(Solution)" BuildInParallel="true" Targets="Clean" />
</Target>
<Target Name="Rebuild">
<MSBuild Projects="@(Solution)" BuildInParallel="true" Targets="Rebuild" />
</Target>
</Project>
我们使用batching capability of msbuild通过一个调用构建不同的配置(发布与调试)和平台。您可以添加其他属性,例如体系结构。
<ItemGroup>
<Solution Include="../**/*.sln">
<Properties>Configuration=Debug;Platform=Any CPU</Properties>
</Solution>
<Solution Include="../**/*.sln">
<Properties>Configuration=Release;Platform=Any CPU</Properties>
</Solution>
</ItemGroup>
若要查看MSBuild如何解决此问题,请尝试以下操作:
<Target Name="Build">
<Message Text="%(Solution.Identity) -> %(Solution.Properties)" />
</Target>
您可能会看到类似以下内容的内容:
../ConsoleApplication1\ConsoleApplication1.sln -> Configuration=Debug;Platform=Any CPU
../ConsoleApplication2\ConsoleApplication2.sln -> Configuration=Debug;Platform=Any CPU
../ConsoleApplication3\ConsoleApplication3.sln -> Configuration=Debug;Platform=Any CPU
../ConsoleApplication1\ConsoleApplication1.sln -> Configuration=Release;Platform=Any CPU
../ConsoleApplication2\ConsoleApplication2.sln -> Configuration=Release;Platform=Any CPU
../ConsoleApplication3\ConsoleApplication3.sln -> Configuration=Release;Platform=Any CPU
在这种情况下,以下
<Target Name="Build">
<MSBuild Projects="@(Solution)" BuildInParallel="true" Targets="Build" />
</Target>
几乎像写作
<Target Name="Build">
<MSBuild Projects="../ConsoleApplication1\ConsoleApplication1.sln" BuildInParallel="true" Targets="Build" Properties="Configuration=Debug;Platform=Any CPU" />
<MSBuild Projects="../ConsoleApplication2\ConsoleApplication2.sln" BuildInParallel="true" Targets="Build" Properties="Configuration=Debug;Platform=Any CPU" />
<MSBuild Projects="../ConsoleApplication3\ConsoleApplication3.sln" BuildInParallel="true" Targets="Build" Properties="Configuration=Debug;Platform=Any CPU" />
<MSBuild Projects="../ConsoleApplication1\ConsoleApplication1.sln" BuildInParallel="true" Targets="Build" Properties="Configuration=Release;Platform=Any CPU" />
<MSBuild Projects="../ConsoleApplication2\ConsoleApplication2.sln" BuildInParallel="true" Targets="Build" Properties="Configuration=Release;Platform=Any CPU" />
<MSBuild Projects="../ConsoleApplication3\ConsoleApplication3.sln" BuildInParallel="true" Targets="Build" Properties="Configuration=Release;Platform=Any CPU" />
</Target>
后者并不完全相同。例如,解决方案将以串行方式构建,而这些解决方案中的项目将以并行方式构建。但这使您了解批处理的工作原理。
这是构建所有“Debug”和“Release”配置的命令。
msbuild master.proj /m:4 /ds
为了确保并行构建解决方案(不仅是其项目),需要
/m
。 /ds
将为您提供详细的摘要,因此您可以查看其是否有效。我的机器上的输出如下:
Microsoft (R) Build Engine version 4.0.30319.33440
[Microsoft .NET Framework, version 4.0.30319.34011]
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 3/2/2014 12:56:38 PM.
1>Project "S:\msbuild\parallel\ConsoleApplication1\master.proj" on node 1 (default targets).
1>Project "S:\msbuild\parallel\ConsoleApplication1\master.proj" (1) is building "S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1.sln" (2) on node 1 (Build target(s)).
2>ValidateSolutionConfiguration:
Building solution configuration "Debug|Any CPU".
1>Project "S:\msbuild\parallel\ConsoleApplication1\master.proj" (1) is building "S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2.sln" (3) on node 1 (Build target(s)).
3>ValidateSolutionConfiguration:
Building solution configuration "Debug|Any CPU".
1>Project "S:\msbuild\parallel\ConsoleApplication1\master.proj" (1) is building "S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3.sln" (4) on node 1 (Build target(s)).
4>ValidateSolutionConfiguration:
Building solution configuration "Debug|Any CPU".
1>Project "S:\msbuild\parallel\ConsoleApplication1\master.proj" (1) is building "S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1.sln" (2:2) on node 1 (Build target(s)).
2>ValidateSolutionConfiguration:
Building solution configuration "Release|Any CPU".
1>Project "S:\msbuild\parallel\ConsoleApplication1\master.proj" (1) is building "S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2.sln" (3:2) on node 1 (Build target(s)).
3>ValidateSolutionConfiguration:
Building solution configuration "Release|Any CPU".
1>Project "S:\msbuild\parallel\ConsoleApplication1\master.proj" (1) is building "S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3.sln" (4:2) on node 1 (Build target(s)).
4>ValidateSolutionConfiguration:
Building solution configuration "Release|Any CPU".
2>Project "S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1.sln" (2) is building "S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.csproj" (5) on node 3 (default targets).
5>GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
CoreCompile:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /platform:anycpu32bitpreferred /errorreport:prompt /warn:4 /define:DEBUG;TRACE /highentropyva+ /reference:"C:\Program Files (x86)\Reference Assemblies\Mi
crosoft\Framework\.NETFramework\v4.5\Microsoft.CSharp.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.N
ETFramework\v4.5\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.DataSetExtensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFr
amework\v4.5\System.Data.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.dll
" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.Linq.dll" /debug+ /debug:full /filealign:512 /optimize- /out:obj\Debug\ConsoleApplication1.exe /subsystemversion:6.00 /target:exe /utf8out
put Program.cs Properties\AssemblyInfo.cs "C:\Users\werners\AppData\Local\Temp\.NETFramework,Version=v4.5.AssemblyAttributes.cs"
3>Project "S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2.sln" (3) is building "S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.csproj" (7) on node 4 (default targets).
7>GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
CoreCompile:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /platform:anycpu32bitpreferred /errorreport:prompt /warn:4 /define:DEBUG;TRACE /highentropyva+ /reference:"C:\Program Files (x86)\Reference Assemblies\Mi
crosoft\Framework\.NETFramework\v4.5\Microsoft.CSharp.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.N
ETFramework\v4.5\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.DataSetExtensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFr
amework\v4.5\System.Data.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.dll
" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.Linq.dll" /debug+ /debug:full /filealign:512 /optimize- /out:obj\Debug\ConsoleApplication2.exe /subsystemversion:6.00 /target:exe /utf8out
put Program.cs Properties\AssemblyInfo.cs "C:\Users\werners\AppData\Local\Temp\.NETFramework,Version=v4.5.AssemblyAttributes.cs"
4:2>Project "S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3.sln" (4:2) is building "S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.csproj" (6:2) on node 1 (default targets).
6>GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
CoreCompile:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /platform:anycpu32bitpreferred /errorreport:prompt /warn:4 /define:TRACE /highentropyva+ /reference:"C:\Program Files (x86)\Reference Assemblies\Microsof
t\Framework\.NETFramework\v4.5\Microsoft.CSharp.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFram
ework\v4.5\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.DataSetExtensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramewor
k\v4.5\System.Data.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.dll" /ref
erence:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.Linq.dll" /debug:pdbonly /filealign:512 /optimize+ /out:obj\Release\ConsoleApplication3.exe /subsystemversion:6.00 /target:exe /utf8output Progr
am.cs Properties\AssemblyInfo.cs "C:\Users\werners\AppData\Local\Temp\.NETFramework,Version=v4.5.AssemblyAttributes.cs"
4>Project "S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3.sln" (4) is building "S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.csproj" (6) on node 2 (default targets).
6>GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
CoreCompile:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /platform:anycpu32bitpreferred /errorreport:prompt /warn:4 /define:DEBUG;TRACE /highentropyva+ /reference:"C:\Program Files (x86)\Reference Assemblies\Mi
crosoft\Framework\.NETFramework\v4.5\Microsoft.CSharp.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.N
ETFramework\v4.5\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.DataSetExtensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFr
amework\v4.5\System.Data.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.dll
" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.Linq.dll" /debug+ /debug:full /filealign:512 /optimize- /out:obj\Debug\ConsoleApplication3.exe /subsystemversion:6.00 /target:exe /utf8out
put Program.cs Properties\AssemblyInfo.cs "C:\Users\werners\AppData\Local\Temp\.NETFramework,Version=v4.5.AssemblyAttributes.cs"
5>_CopyAppConfigFile:
Copying file from "App.config" to "bin\Debug\ConsoleApplication1.exe.config".
CopyFilesToOutputDirectory:
Copying file from "obj\Debug\ConsoleApplication1.exe" to "bin\Debug\ConsoleApplication1.exe".
ConsoleApplication1 -> S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe
Copying file from "obj\Debug\ConsoleApplication1.pdb" to "bin\Debug\ConsoleApplication1.pdb".
5>Done Building Project "S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.csproj" (default targets).
7>_CopyAppConfigFile:
Copying file from "App.config" to "bin\Debug\ConsoleApplication2.exe.config".
CopyFilesToOutputDirectory:
Copying file from "obj\Debug\ConsoleApplication2.exe" to "bin\Debug\ConsoleApplication2.exe".
ConsoleApplication2 -> S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2\bin\Debug\ConsoleApplication2.exe
Copying file from "obj\Debug\ConsoleApplication2.pdb" to "bin\Debug\ConsoleApplication2.pdb".
7>Done Building Project "S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.csproj" (default targets).
3:2>Project "S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2.sln" (3:2) is building "S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.csproj" (7:2) on node 3 (default targets).
7>GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
CoreCompile:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /platform:anycpu32bitpreferred /errorreport:prompt /warn:4 /define:TRACE /highentropyva+ /reference:"C:\Program Files (x86)\Reference Assemblies\Microsof
t\Framework\.NETFramework\v4.5\Microsoft.CSharp.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFram
ework\v4.5\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.DataSetExtensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramewor
k\v4.5\System.Data.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.dll" /ref
erence:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.Linq.dll" /debug:pdbonly /filealign:512 /optimize+ /out:obj\Release\ConsoleApplication2.exe /subsystemversion:6.00 /target:exe /utf8output Progr
am.cs Properties\AssemblyInfo.cs "C:\Users\werners\AppData\Local\Temp\.NETFramework,Version=v4.5.AssemblyAttributes.cs"
6>_CopyAppConfigFile:
Copying file from "App.config" to "bin\Debug\ConsoleApplication3.exe.config".
CopyFilesToOutputDirectory:
Copying file from "obj\Debug\ConsoleApplication3.exe" to "bin\Debug\ConsoleApplication3.exe".
ConsoleApplication3 -> S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3\bin\Debug\ConsoleApplication3.exe
Copying file from "obj\Debug\ConsoleApplication3.pdb" to "bin\Debug\ConsoleApplication3.pdb".
6>Done Building Project "S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.csproj" (default targets).
6>_CopyAppConfigFile:
Copying file from "App.config" to "bin\Release\ConsoleApplication3.exe.config".
CopyFilesToOutputDirectory:
Copying file from "obj\Release\ConsoleApplication3.exe" to "bin\Release\ConsoleApplication3.exe".
ConsoleApplication3 -> S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3\bin\Release\ConsoleApplication3.exe
Copying file from "obj\Release\ConsoleApplication3.pdb" to "bin\Release\ConsoleApplication3.pdb".
6>Done Building Project "S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.csproj" (default targets).
2:2>Project "S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1.sln" (2:2) is building "S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.csproj" (5:2) on node 4 (default targets).
5>GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
CoreCompile:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /platform:anycpu32bitpreferred /errorreport:prompt /warn:4 /define:TRACE /highentropyva+ /reference:"C:\Program Files (x86)\Reference Assemblies\Microsof
t\Framework\.NETFramework\v4.5\Microsoft.CSharp.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFram
ework\v4.5\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.DataSetExtensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramewor
k\v4.5\System.Data.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.dll" /ref
erence:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.Linq.dll" /debug:pdbonly /filealign:512 /optimize+ /out:obj\Release\ConsoleApplication1.exe /subsystemversion:6.00 /target:exe /utf8output Progr
am.cs Properties\AssemblyInfo.cs "C:\Users\werners\AppData\Local\Temp\.NETFramework,Version=v4.5.AssemblyAttributes.cs"
2>Done Building Project "S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1.sln" (Build target(s)).
3>Done Building Project "S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2.sln" (Build target(s)).
4>Done Building Project "S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3.sln" (Build target(s)).
4>Done Building Project "S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3.sln" (Build target(s)).
7>_CopyAppConfigFile:
Copying file from "App.config" to "bin\Release\ConsoleApplication2.exe.config".
CopyFilesToOutputDirectory:
Copying file from "obj\Release\ConsoleApplication2.exe" to "bin\Release\ConsoleApplication2.exe".
ConsoleApplication2 -> S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2\bin\Release\ConsoleApplication2.exe
Copying file from "obj\Release\ConsoleApplication2.pdb" to "bin\Release\ConsoleApplication2.pdb".
7>Done Building Project "S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.csproj" (default targets).
3>Done Building Project "S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2.sln" (Build target(s)).
5>_CopyAppConfigFile:
Copying file from "App.config" to "bin\Release\ConsoleApplication1.exe.config".
CopyFilesToOutputDirectory:
Copying file from "obj\Release\ConsoleApplication1.exe" to "bin\Release\ConsoleApplication1.exe".
ConsoleApplication1 -> S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1\bin\Release\ConsoleApplication1.exe
Copying file from "obj\Release\ConsoleApplication1.pdb" to "bin\Release\ConsoleApplication1.pdb".
5>Done Building Project "S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.csproj" (default targets).
2>Done Building Project "S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1.sln" (Build target(s)).
1>Done Building Project "S:\msbuild\parallel\ConsoleApplication1\master.proj" (default targets).
Deferred Messages
Detailed Build Summary
======================
============================== Build Hierarchy (IDs represent configurations) =====================================================
Id : Exclusive Time Total Time Path (Targets)
-----------------------------------------------------------------------------------------------------------------------------------
0 : 0.053s 0.457s S:\msbuild\parallel\ConsoleApplication1\master.proj ()
| 1 : 0.027s 0.325s S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1.sln (Build)
| . 7 : 0.222s 0.222s S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.csproj ()
| 2 : 0.012s 0.309s S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2.sln (Build)
| . 8 : 0.269s 0.269s S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.csproj ()
| 3 : 0.009s 0.299s S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3.sln (Build)
| . 9 : 0.267s 0.267s S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.csproj ()
| 4 : 0.012s 0.367s S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1.sln (Build)
| . 10 : 0.106s 0.106s S:\msbuild\parallel\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.csproj ()
| 5 : 0.011s 0.326s S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2.sln (Build)
| . 11 : 0.133s 0.133s S:\msbuild\parallel\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.csproj ()
. 6 : 0.010s 0.271s S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3.sln (Build)
| . 12 : 0.249s 0.249s S:\msbuild\parallel\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.csproj ()
============================== Node Utilization (IDs represent configurations) ====================================================
Timestamp: 1 2 3 4 Duration Cumulative
-----------------------------------------------------------------------------------------------------------------------------------
635293905985195918: 0 x x x 0.052s 0.052s #
635293905985714767: 1 x x x 0.018s 0.070s
635293905985894149: 2 x 7 x 0.010s 0.080s
635293905985993932: 3 x | 8 0.009s 0.089s
635293905986083729: 4 9 | | 0.011s 0.100s
635293905986193468: 5 | | | 0.010s 0.110s
635293905986293247: 6 | | | 0.009s 0.119s
635293905986383052: 12 | | | 0.174s 0.292s ###
635293905988119133: | | 11 | 0.057s 0.349s #
635293905988687942: | | | 10 0.007s 0.356s
635293905988757691: | x | | 0.012s 0.368s
635293905988877370: 1 x | | 0.009s 0.377s
635293905988967228: 2 x | | 0.002s 0.379s
635293905988987132: 6 x | | 0.046s 0.425s
635293905989446047: 5 x x | 0.001s 0.426s
635293905989456078: x x x | 0.029s 0.455s
635293905989745347: 4 x x x 0.001s 0.456s
635293905989755363: 0 x x x 0.001s 0.457s
-----------------------------------------------------------------------------------------------------------------------------------
Utilization: 83.6 72.6 91.7 99.5 Average Utilization: 86.9
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:00.61
有一个post可以帮助您识别在哪个节点上构建了什么。
您还应该注意,解决方案之间没有依赖关系。如果有的话,您将必须更具创造力。有关使用item metadata with task batching的MSDN文档可能会有所帮助。
引用:
关于visual-studio - 同时构建多个Visual Studio解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22131757/