У меня есть 3 версии Visual Studio, установленной, и 3 проекта, которые требуют определенной версии. VSLauncher РАНЬШЕ смотрел на SLN или файл VCPROJ и открывал правильную версию Visual Studio. Теперь это только запускает новую версию, независимо от проекта.
Обратите внимание, что это не имеет никакого отношения к проблеме, о которой обычно сообщают, с бета-версиями VS. ни один из SLNs никогда не затрагивался бетой VS.
Проблема заключалась в том, что файлы SLN были слегка повреждены. Удаление файлов и разрешение соответствующей версии VS воссоздать их привело к созданию файла, который, по мнению инструмента сравнения, был идентичным, но был ровно на 3 байта длиннее. Я подозреваю, что проблема связана с отсутствующей меткой порядка байтов UTF-8. Почему VSLauncher такой привередливый - другой вопрос.
ДОБАВИТЬ: Да, после открытия нового файла в шестнадцатеричном редакторе я могу с уверенностью сказать, что проблема заключалась в отсутствии спецификации старого файла. Это было сложно обнаружить, потому что мой инструмент сравнения, по-видимому, даже не видит спецификации.