visual-studio-2010visual-studiovisual-studio-2012ankhsvnproductivity-power-tools

Why does it take sooo long to load my solution in Visual Studio?


We have a really big solution with more than 200 projects and thousands of files. Despite of that the solution used to load pretty quickly in Visual Studio 2010 as well as 2012. However, after copying the whole SVN repository to another location, loading and closing the solution suddenly took extreeeemly long. (I am talking about 30-60 minutes here!)


Solution

  • I found a solution myself and I wanted to share it here, hoping that it might save someone quite a few hours of research and staring at the "Preparing solution..." dialog.

    When inspecting the devenv.exe process with Process Monitor, I found out that it is pretty busy with accessing the .svn directory. Here is what I did (and this somehow solved the problem):

    1. Kill Visual Studio
    2. Open Visual Studio without loading a solution
    3. Disable AnkhSvn as Source Control plugin (Tools->Options->Source Control->Plug-in Selection->None)
    4. Disable "Document Well 2010 Plus" (VS2010) or "Custom Document Well" (VS2012) in Productivity Power Tools (Tools->Options->Productivity Power Tools) - I read that somewhere and it might have helped as well...
    5. Close Visual Studio
    6. Delete the solution's *.suo file. This is located in the same folder as the solution itself. NOTE: You will lose several settings for your solution, like currently opened files, breakpoints, bookmarks, current solution configuration & platform (e.g. Debug x86) etc.
    7. Restart Visual Studio
    8. Load the solution - it was much faster now!
    9. Close Visual Studio
    10. Open Visual Studio without loading a solution
    11. Re-enable AnkhSvn and the "Document Well"
    12. Restart Visual Studio
    13. Open the solution - it was still loaded in seconds!

    I do not know which of these steps actually solved the problem. Probably, not all these steps are required, but I did not want to reproduce the problem to find out which steps may be omitted. :)