7

Is there an extension to Visual Studio that provides the ability to create something like an 'unloaded project profile' for a solution?

I have a solution with a large number of projects (~100). When working on a certain part, I can unload unrelated projects to improve performance. I'd like to be able to save this group of unloaded projects, so that when I switch to working on a different part I can then cause it's projects to be loaded instead.

David Gardiner
  • 16,892
  • 20
  • 80
  • 117
  • I don't want to sound rude, but just get a new computer perhaps? Hardware is much cheaper than developer time; I have a visual studio solution with >100 projects that loads in less than 10 seconds because it's off an SSD. – congusbongus Mar 07 '13 at 01:11
  • 1
    Oh, I have a decent dev box, and 2012 is certainly better at handling lots of projects compared to 2010 - but it still makes a difference if VS (and addins like ReSharper) only have to look at a limited subset. – David Gardiner Mar 07 '13 at 02:27
  • possible duplicate of [How to load/unload multiple projects in a solution?](http://stackoverflow.com/questions/18956803/how-to-load-unload-multiple-projects-in-a-solution) – StriplingWarrior Nov 06 '13 at 20:14

3 Answers3

6

I ended up writing my own extension to do this - Loaded Projects, for Visual Studio 2012.

But then I discovered Funnel (by Dimitri Dering), which takes the same concept to the next level, with a more polished UI and additional features.

David Gardiner
  • 16,892
  • 20
  • 80
  • 117
  • Great find. Funnel is awesome. – Jon Crowell Jul 14 '15 at 15:52
  • see my answer below about the new feature in VS 2019 for doing this with "Solution Filter Files" – Derek Jan 02 '20 at 12:35
  • 1
    Fwiw, "_WARNING: The development of this extension is discontinued. The VS 2017 API interface used by vsFunnel for filtering projects at load time is no longer supported by Microsoft._" Appears it might still work with some bearable weirdness on VS 2017 and earlier. – ruffin Oct 06 '20 at 13:30
3

Visual Studio 2019 has a new concept called "Solution Filter Files".

https://learn.microsoft.com/en-us/visualstudio/ide/filtered-solutions?view=vs-2019

You can right click on a solution after you've unloaded what you want and do "Save as solution filter". It creates a file which is a list of projects to INCLUDE in opening. So if a new project is added, I don't think it would be picked up.

Another important feature to note is the right click "Show unloaded projects" and the right click "Hide unloaded projects".

FYI - The file looks like this:

{
  "solution": {
    "path": "IvaraDotNet.sln",
    "projects": [
      "AssetManagement\\StaticLoad\\AssetManagementStaticLoad.vcxproj",
       ....
      "framework\\oqpersman\\oqpersman.vcxproj"
    ]
  }
}
Derek
  • 7,615
  • 5
  • 33
  • 58
  • Here is [the documentation](https://learn.microsoft.com/en-us/visualstudio/ide/filtered-solutions?view=vs-2019#solution-filter-files) on the feature. – Wallace Kelly Dec 16 '20 at 20:49
2

This guy recommends comparmentalizing projects into "Solution Folders" so you can right-click and load/unload all of the projects in a given solution folder:

http://blogs.msdn.com/b/jjameson/archive/2009/03/06/large-visual-studio-solutions-by-loading-unloading-projects.aspx

He also shows how you can write macros to load or unload groups of projects:

http://blogs.msdn.com/b/jjameson/archive/2009/03/11/visual-studio-macros-for-unloading-reloading-projects.aspx

StriplingWarrior
  • 151,543
  • 27
  • 246
  • 315