在 VSTS 中实现并行构建的信心
Confidence enabling Build in Parallel in VSTS
我正在考虑启用:
我想知道构建是如何在 Visual Studio 本地发生的,理论上如果它在本地并行构建良好,我应该在 VSTS 中足够安全。
在过去,并行构建是通过 msbuild 命令行巫术启用的,根据我处理复杂项目的经验,它似乎很少使用其他 CPU 核心。
但在 Visual Studio 2017 年,这是一个可爱的简单项目,我现在有一个不错的新项目(快乐的日子):
我可以从 Visual Studio 的构建输出中看出有多少项目实际上最终是并行构建的,从而让我对 VSTS 设置充满信心吗?
当然,请参考这些步骤来更改 MSBuild 输出的详细程度(与您的屏幕截图相同 window):
- 工具=>选项
- Select 项目和解决方案=>构建和 运行
- 在 MSBuild 项目构建输出详细信息中选择 Normal
那么VS输出中的构建日志window会是这样的:
1>------ Rebuild All started: Project: MVCCore20, Configuration: Debug Any CPU ------
2>------ Rebuild All started: Project: ConsoleApp1, Configuration: Debug Any CPU ------
3>------ Rebuild All started: Project: ConsoleApp2, Configuration: Debug Any CPU ------
4>------ Rebuild All started: Project: ConsoleApp3, Configuration: Debug Any CPU ------
2>Target CoreClean:
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\bin\Debug\netcoreapp2.0\ConsoleApp1.deps.json".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\bin\Debug\netcoreapp2.0\ConsoleApp1.runtimeconfig.json".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\bin\Debug\netcoreapp2.0\ConsoleApp1.runtimeconfig.dev.json".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\bin\Debug\netcoreapp2.0\ConsoleApp1.dll".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\bin\Debug\netcoreapp2.0\ConsoleApp1.pdb".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\obj\Debug\netcoreapp2.0\ConsoleApp1.csprojResolveAssemblyReference.cache".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\obj\Debug\netcoreapp2.0\ConsoleApp1.csproj.CoreCompileInputs.cache".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\obj\Debug\netcoreapp2.0\ConsoleApp1.AssemblyInfoInputs.cache".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\obj\Debug\netcoreapp2.0\ConsoleApp1.AssemblyInfo.cs".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\obj\Debug\netcoreapp2.0\ConsoleApp1.dll".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\obj\Debug\netcoreapp2.0\ConsoleApp1.pdb".
2>Target GenerateTargetFrameworkMonikerAttribute:
2> Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
4>Target CoreClean:
4> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp3\bin\Debug\netcoreapp2.0\ConsoleApp3.deps.json".
2>Target CoreCompile:
数字1、2、3、4表示进程。
另一方面,如果在 VSTS 构建任务中选中 并行构建 选项,它会向 MSBuild 命令添加 /m
参数,因此进程数是每个到计算机上的处理器数量,如果要使用自定义值,则需要取消选中该选项并在 MSBuild Arguments 输入框中指定 /m:X
参数。
我正在考虑启用:
我想知道构建是如何在 Visual Studio 本地发生的,理论上如果它在本地并行构建良好,我应该在 VSTS 中足够安全。
在过去,并行构建是通过 msbuild 命令行巫术启用的,根据我处理复杂项目的经验,它似乎很少使用其他 CPU 核心。
但在 Visual Studio 2017 年,这是一个可爱的简单项目,我现在有一个不错的新项目(快乐的日子):
我可以从 Visual Studio 的构建输出中看出有多少项目实际上最终是并行构建的,从而让我对 VSTS 设置充满信心吗?
当然,请参考这些步骤来更改 MSBuild 输出的详细程度(与您的屏幕截图相同 window):
- 工具=>选项
- Select 项目和解决方案=>构建和 运行
- 在 MSBuild 项目构建输出详细信息中选择 Normal
那么VS输出中的构建日志window会是这样的:
1>------ Rebuild All started: Project: MVCCore20, Configuration: Debug Any CPU ------
2>------ Rebuild All started: Project: ConsoleApp1, Configuration: Debug Any CPU ------
3>------ Rebuild All started: Project: ConsoleApp2, Configuration: Debug Any CPU ------
4>------ Rebuild All started: Project: ConsoleApp3, Configuration: Debug Any CPU ------
2>Target CoreClean:
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\bin\Debug\netcoreapp2.0\ConsoleApp1.deps.json".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\bin\Debug\netcoreapp2.0\ConsoleApp1.runtimeconfig.json".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\bin\Debug\netcoreapp2.0\ConsoleApp1.runtimeconfig.dev.json".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\bin\Debug\netcoreapp2.0\ConsoleApp1.dll".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\bin\Debug\netcoreapp2.0\ConsoleApp1.pdb".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\obj\Debug\netcoreapp2.0\ConsoleApp1.csprojResolveAssemblyReference.cache".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\obj\Debug\netcoreapp2.0\ConsoleApp1.csproj.CoreCompileInputs.cache".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\obj\Debug\netcoreapp2.0\ConsoleApp1.AssemblyInfoInputs.cache".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\obj\Debug\netcoreapp2.0\ConsoleApp1.AssemblyInfo.cs".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\obj\Debug\netcoreapp2.0\ConsoleApp1.dll".
2> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp1\obj\Debug\netcoreapp2.0\ConsoleApp1.pdb".
2>Target GenerateTargetFrameworkMonikerAttribute:
2> Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
4>Target CoreClean:
4> Deleting file "D:.0_Starain.0_Work.8_VSO.1_Projects17\MVCCore20\ConsoleApp3\bin\Debug\netcoreapp2.0\ConsoleApp3.deps.json".
2>Target CoreCompile:
数字1、2、3、4表示进程。
另一方面,如果在 VSTS 构建任务中选中 并行构建 选项,它会向 MSBuild 命令添加 /m
参数,因此进程数是每个到计算机上的处理器数量,如果要使用自定义值,则需要取消选中该选项并在 MSBuild Arguments 输入框中指定 /m:X
参数。