I have started the new year with a MVP title for another year (thanks Microsoft!) and I have started to write more articles about Visual Studio extensibility. The one of today is about the folders that Visual Studio uses to locate .Addin files (XML registration). It happens that Visual Studio 2005 uses 5 folders by default and Visual Studio 2008 uses 6, and both allows you to add even more folders. I wonder why we should need more than one folder (to register an add-in for all users, which is the correct thing) and maybe another to register the add-in only for the current user (for development purposes only). But Microsoft thinks otherwise, and not surprisingly, the result is a mess. If you follow the MSDN Visual Studio 2008 documentation about this topic, you will find that:
- 1 location uses the hardcoded value “Application Data” that every non-English developer knows it is a sin.
- 3 locations are incorrectly documented. If you place the .AddIn file in the documented folder, the Add-in Manager won’t show it.
- 1 new location for Visual Studio 2008 is not documented. An even if it was, it happens that there is a bug in VS 2008 and it doesn’t work.
So, 6-1-3-1 = 1 folder, which is all we should need to register add-ins.
Furthermore, VS uses proprietary placeholders such as %VSCOMMONDATA% but there seems to be no API or registry entry to get that programatically, so your setup will have to use some workaround as explained in the article.
I wish developers don’t complicate things unnecessarily… the software would have less bugs…
Here is the article:
INFO: Default .AddIn file locations for Visual Studio add-ins