I have 3 versions of Visual Studio installed, and 3 projects that require a specific version. VSLauncher USED to look at the SLN or VCPROJ file and open the correct version of Visual Studio. Now it only starts the most recent version, regardless of the project.
Note that this has nothing to do with the commonly reported problem with beta versions of VS. none of the SLNs have ever been touched by a beta VS.
The problem was that the SLN files were subtly corrupted. Deleting the files and letting the appropriate version of VS recreate them resulted in a file that the diff tool thought was identical, but was exactly 3 bytes longer. I suspect the problem can be traced to a missing UTF-8 Byte Order Mark. Why VSLauncher is that picky is another question.
ADD: Yes, After opening the new file in a hex editor, I can say for certain that the problem was a missing BOM on the old file. This was tricky to spot because my diff tool apparently does not even see the BOM.