Agent Settings Dialog Visual Studio Builds->Advanced Page

Agent Settings Dialog Visual Studio Builds->Advanced Page

The Visual Studio Builds->Advanced page contains advanced settings that affect Visual Studio builds initiated by this Agent:


Build Options (Visual Studio .NET / 2005 / 2008)

Build non-C/C++ projects

When this option is selected, IncrediBuild builds non-C/C++ (Visual Basic, C#, deployment) projects on the local machine. Select this option if you have mixed (C/C++ and non-C/C++) projects in your solution. To build the non-C/C++ projects, IncrediBuild spawns a child process running devenv.exe with the /build parameter to build that project.

Disabling this option makes IncrediBuild ignore non-C/C++ projects.

Build non-C/C++ projects in parallel locally (when possible)

When this option is selected, non C/C++ projects (C#, VB, etc.) are  built in parallel on the local machine's CPUs/cores (on Agents which have the "Multiple CPUs/Cores" extension package). This option is deselected by default because, in some cases, running C# projects in parallel can lead to file access conflict errors.

Predictive Execution (Visual Studio 2010 and higher)

Enhance throughput using out-of-order tasks spawning

Enabling this option (VS2010 and higher) may highly improve build performance by instructing IncrediBuild to execute Visual Studio tasks (compilation, link, RC etc.) in an optimized order and not necessarily in the same order as Visual Studio would have executed them.

IncrediBuild will try increasing Visual Studio’s build tasks throughput thus potentially increasing the build performance and CPU utilization.
Consider the following scenario: project B depends on project A. Normally, both Visual Studio and IncrediBuild will first finish compiling and linking the entire A project before proceeding with project B. With “predictive execution” enabled, IncrediBuild may conclude that some compilation tasks from project B can be executed simultaneously with tasks from project A.


The predictive execution feature is currently not supported and should be disabled, for the following platforms / compilers: WiiU, Café, Nintendo 3DS and CUDA compiler.
Do not enable the “predictive execution” feature on a machine using any of these tools.


Use Environment variables instead of IDE paths

When this option is selected, IncrediBuild uses the local environment variables INCLUDE, LIB, and PATH instead of the variables set in the IDE.

PDB File Allocation

Limit Concurrent PDB file instances to X

When this option is selected, IncrediBuild limits the number of files belonging to the same project that can be built concurrently. This results in a smaller number of PDB files and a speedup in link times. Selecting this option also limits the potential for parallelization in builds, meaning that the number of compilations that can run in parallel for a specific project cannot be more than the number selected here. For example, if you have two projects that can run in parallel, and you select in this option to limit concurrent PDB file instances to 8. Assuming each project contains 100 compilations, sixteen compilations will run in parallel eight compilations from project A and eight compilations from project B.

It is recommended to experiment with different values before using this option. Generally speaking, this feature is more suitable for solutions containing a large number of projects, as having more projects leaves room for better parallelization.     

Force 64-bit toolset

When this option is selected, IncrediBuild will run builds under Visual Studio using the native 64-bit toolset of Visual Studio, instead of the default 32-bit toolset. This option will only affect builds running under VS 2013 and VS 2015.

Choosing this option can add some limited performance along with solving various Linker memory related problems such as LNK1318 as the Linker will be able to use more memory.