Если у меня есть решение VS 2005, оно отображается как «Версия: Visual Studio 2005».Если у меня есть решение VS 2010, файл sln отображается как связанный с этим.
Оба имеют суффикс .sln.Итак, как Windows узнает, с какой версией VS открыть ее?
Используются расширения оболочки «Обработчик свойств» и «Обработчик значков» (часть средства выбора версий Visual Studio) Они регистрируются ключом реестра HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln (на который ссылается HKEY_CLASSES_ROOT\.sln)
HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln
HKEY_CLASSES_ROOT\.sln
Когда вы открываете файл, он запускает "c:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\VSLauncher.exe" "%1", который читает версию из файла .sln и открывает правильную версию.
"c:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\VSLauncher.exe" "%1"
.sln