It seems that the .sln extension belongs to "Visual Studio 2010 Shell" - the minimum version of Visual Studio that ships with products such as SQL Server and Office to support add-in support without any other features. Since this is the minimum version, it cannot load any type of project that comes with Visual Studio Express, Professional, or higher.
The same thing can happen if Visual Studio Express is installed next to the full version of Visual Studio.
This can happen when you install an older version of Office or SQL Server after installing Visual Studio. The old installer will hold the extension.
To fix this problem:
- use the Open With option on Windows and select the Visual Studio Version Selector as the default action.
- Or open the "Default Programs" option on Windows, look at the .sln extension and make sure it uses the "Visual Studio Version Selector" by default:

- Or find Visual Studio 2012 in the Windows Programs and Features window and select Modify, the Visual Studio installer will appear, select Restore to fix file associations and any other problems that may occur when installing Visual Studio Versions in the reverse order (this may, for example, ruin the MsBuild directory).
Remember that when Visual Studio 2010 was released, it still could not know what Visual Studio 2012 would change, so it is best to install versions of Visual Studio in the order in which they were released. This can sometimes be difficult, as other products may install versions of Visual Studio without your knowledge.
source share