Source and Support
My solutions have lots of references to other projects, either common libraries or unit testing libraries. Neither of these scenarios lend well to manual binary references or NuGet packages, so I have lots of source code projects loaded for each solution.
When creating a new solution (or retro fitting an existing solution to use new libraries), I end up using File | Add | Existing project a lot. As I was curious about how extensions in Visual Studio worked, I decided to write a very simple one to ease the grunt work of adding multiple common projects.
This simple extension is the result. I'm afriad it doesn't use WPF, so it's a touch ugly but it gets the job done. I've been using it for almost a year now before finally uploading it here on the gallery - hopefully others will find it as useful as I have.
Using the extension
To use the extension, open the Tools menu and choose Add Projects. This will open a lovely unthemed Windows Forms dialog containing an empty list of projects.
Adding a single project to the MRU
To add a single project to the list, click the Add File button then select the project you want to include.
Note: Currently changes won't be saved unless you also add something to you project. So if you add a bunch of stuff, then hit cancel... oops. I'll fix this at some point!
Adding multiple projects to the MRU
To add multiple projects to the list, click the Add Folder button, then select a folder. After you've selected a folder, all projects in this folder and its subfolders will be added to the list.
Removing projects from the MRU
You can remove projects from the list, just select them and press the Delete key or the Remove button.
Adding projects to your solution
Just place tick each project you want to add to your solution, then click the OK button. It will then try and add each selected project to your solution, skipping any that are already present.
Most of the information here (especially the screenshots) are taken from my original blog post on the subject. However, since then I did make one update to the extension to add some basic filtering to the dialog. If you have a big list of project, just type a few matching characters in the Filter box to trim visible items.
The settings for the extension are saved into an XML file located at
<!--?xml version="1.0"?--> <ExtensionSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Projects> <string>C:\Checkout\cyotek\source\Libraries\Cyotek.ApplicationServices\Cyotek.ApplicationServices.csproj</string> <string>C:\Checkout\cyotek\source\Libraries\Cyotek.ApplicationServices.Commands\Cyotek.ApplicationServices.Commands.csproj</string> <!-- SNIP --> <string>C:\Checkout\cyotek\source\Libraries\Cyotek.Windows.Runtime.Support\Cyotek.Windows.Runtime.Support.csproj</string> <string>C:\Checkout\cyotek\source\Libraries\Cyotek.Windows.Runtime.Testing\Cyotek.Windows.Runtime.Testing.csproj</string> </Projects> </ExtensionSettings>
These are the issues I currently know about - please let me know if you find anything else.
More information can be found on the Cyotek Blog.
Please view the change log for this extension on the GitHub page for this project.