General idea: As the number of C# projects referencing a C++ project increases, so does the delay before incremental build starts.
Version: VS 2013 (Does not repro in VS 2012) [More specifically: Microsoft Visual Studio Professional 2013 Version 12.0.30110.00 Update 1]
Given a solution with the following:
* one C++ CLR project (with no code added, fresh from the new project generator)
* multiple C# projects (also with no code added, fresh from the new project generator)
** add a reference from each of these C# projects to the C++/CLI project
Build the solution. Then incrementally build the solution and note how long until the first messages appear in the output window.
For a small number of C# projects referencing the C++ project, the delay should be sub-second.
Now add more new C# projects, all with references to the C++ project. Note the delay.
On my machine, the delay times took something like this:
6 projects: 1 second
12 projects: 2 seconds
18 projects: 3 seconds
Now unload the C++ project (right-click, unload project).
Build again. The build delay goes away.
Reload the C++ project and note that the build delay returns.
Select all of the C# projects and unload them. Note that the delay goes away. Re-enable them in small groups, note that the delay increases as before the more projects are loaded.
None of this delay is present when using msbuild from the command line, so it seems to be a VS problem.
None of this delay is present when building the project from VS 2012 (changing the C++ build tools to 2012), so it seems to be specific to 2013.
The delay is still present when building the project in VS 2013 but with the 2012 C++ build tools, so it seems to be about VS itself, not the C++ build tools.
The delay does not change when additionally, an equal number of C# projects are also added that do not reference the C++ project, so it seems that referencing the C++ is the problem; further evidence on this point is that unloading the C++ project is sufficient to eliminate the delay.
3 seconds is not a particularly big deal, but in our actual solution we have a much larger number of projects and the delays are starting to be significant, espeically since we did not have this problem until we upgraded to 2013.
Version: VS 2013 (Does not repro in VS 2012) [More specifically: Microsoft Visual Studio Professional 2013 Version 12.0.30110.00 Update 1]
Given a solution with the following:
* one C++ CLR project (with no code added, fresh from the new project generator)
* multiple C# projects (also with no code added, fresh from the new project generator)
** add a reference from each of these C# projects to the C++/CLI project
Build the solution. Then incrementally build the solution and note how long until the first messages appear in the output window.
For a small number of C# projects referencing the C++ project, the delay should be sub-second.
Now add more new C# projects, all with references to the C++ project. Note the delay.
On my machine, the delay times took something like this:
6 projects: 1 second
12 projects: 2 seconds
18 projects: 3 seconds
Now unload the C++ project (right-click, unload project).
Build again. The build delay goes away.
Reload the C++ project and note that the build delay returns.
Select all of the C# projects and unload them. Note that the delay goes away. Re-enable them in small groups, note that the delay increases as before the more projects are loaded.
None of this delay is present when using msbuild from the command line, so it seems to be a VS problem.
None of this delay is present when building the project from VS 2012 (changing the C++ build tools to 2012), so it seems to be specific to 2013.
The delay is still present when building the project in VS 2013 but with the 2012 C++ build tools, so it seems to be about VS itself, not the C++ build tools.
The delay does not change when additionally, an equal number of C# projects are also added that do not reference the C++ project, so it seems that referencing the C++ is the problem; further evidence on this point is that unloading the C++ project is sufficient to eliminate the delay.
3 seconds is not a particularly big deal, but in our actual solution we have a much larger number of projects and the delays are starting to be significant, espeically since we did not have this problem until we upgraded to 2013.