Our product has more than 100 projects (500 + ksloc production code). Most of them are C # projects, but we also use little C ++ / CLI to associate communications with native code.
Restoring the entire solution takes several minutes. It's great. If I want to rebuild the solution, I expect it to take some time. What is not good is the time it takes to create a solution after a complete overhaul. Imagine that I used a complete rebuild and now, without making any changes to the solution, I press Build (F6 or Ctrl + Shift + B). Why does it take 35 seconds if there were no changes? At the exit, I see that he began to "build" each project - he does not perform a real assembly, but does something that consumes a significant amount of time.
This delay is a pain in the ass. Yes, I can improve the time without using the build solution, but only by creating a project (Shift + F6). If I run an assembly project for a specific test project that I am currently working on, it will accept “only” 8 + s. It requires me to start building the project on the correct project (the test project also provided the assembly of the dependent verified code). At the very least, the ReSharper tester correctly recognizes that only this single project should be an assembly, and restarting usually only contains 8 + s compilation. My current Kata encoding: don't touch Ctrl + Shift + B.
Building a test project will take 8 seconds, even if I do not make any changes. The reason it takes 8 seconds is that it also builds dependencies = in my case, it builds more than 20 projects, but I only made changes to the unit test or one dependency! I do not want him to deal with other projects.
Is there a way to simply tell VS to build only projects in which some changes have been made, and projects depending on the changes (preferably this part as another build option)? I'm worried, you will tell me that this is exactly what VS does, but in different ways ...
I want to improve my TDD experience and reduce compilation time (in TDD, compilation can happen twice per minute).
To make this even more frustrating, I work in a team where most developers worked on Java projects before joining it. That way, you can imagine how angry they are when they should use VS, as opposed to full incremental compilation in Java. I do not need incremental compilation of classes . I expect that we will work with incremental compilation of solutions. Especially in a product like the 2010 Ultimate, which costs several thousand dollars.
I really don't want to receive answers like:
- Make a separate decision
- Upload projects that you don’t need.
- and etc.
I can read these answers here . These are not acceptable solutions. We do not pay for VS to make such compromises.