Что такое формат файла SUO?
Файл .suo хранит персональное состояние IDE для решения Visual Studio - настройки, которые принадлежат конкретному пользователю на конкретной машине, а не самому решению. Когда вы открываете решение, Visual Studio записывает макет редактора, открытые документы и положение курсора, активную конфигурацию сборки (Debug или Release), расположение точек останова, историю поиска/замены и расположение окон инструментов в файл .suo рядом с файлом решения .sln.
Формат представляет собой бинарный контейнер OLE2 Compound File Binary (CFBF) - тот же контейнер, который используется в устаревших файлах .doc и .xls. Каждый установленный пакет Visual Studio записывает свой собственный именованный поток в составной файл для сохранения своего состояния. Восьмибайтовая магическая сигнатура D0 CF 11 E0 A1 B1 1A E1 является общей для всех файлов OLE2/CFBF; внутренние имена потоков, такие как SolutionConfiguration и TaskListOptions, идентифицируют его как .suo.
Поскольку файлы .suo привязаны к пользователю и компьютеру, их никогда не следует фиксировать в системе контроля версий - добавьте *.suo в свой .gitignore. Если IDE ведет себя странно (неправильные конфигурации сборки, отсутствие точек останова), удаление .suo является стандартным первым шагом по устранению неполадок; Visual Studio автоматически воссоздает его при следующем запуске. Файл помечен как скрытый в файловой системе.
Начиная с Visual Studio 2015, Microsoft начала переносить это состояние в скрытую папку .vs\ рядом с решением. Visual Studio 2017 и более поздние версии больше не создают монолитный файл .suo; эквивалентные данные хранятся в .vs\{solution-name}\v15\ в виде отдельных JSON и бинарных файлов. Расширение .suo фактически является устаревшим для любого проекта, открытого в VS 2017 или новее.
Безопасность и защита
РИСК: LOWФайлы SUO являются пассивными хранилищами бинарных данных - сами по себе они не представляют риска исполнения. Они могут содержать данные, специфичные для разработчика: пути к файлам на локальной машине, структуру проекта и конфигурации расширений. По этой причине ими не следует делиться публично (добавьте *.suo в .gitignore). Специально сформированный файл CFBF теоретически может использовать ошибку парсера CFBF в Visual Studio, но это очень теоретический риск для файлов .suo, полученных из неизвестных источников.
Детали формата
в двух словахПрограммы, открывающие файлы SUO
Технические подробности
глубокая спецификация| Формат контейнера | Структурированное хранилище OLE2 Compound File Binary Format (CFBF) |
| Магические байты | D0 CF 11 E0 A1 B1 1A E1 по смещению 0 (общая сигнатура OLE2) |
| Кодировка | Бинарная, little-endian |
| Внутренние потоки | Именованные потоки CFBF для каждого пакета Visual Studio, идентифицируемые по именам на основе GUID |
| Сохраняемое состояние | Открытые документы и позиции курсора, макет редактора, точки останова, активная конфигурация сборки, история поиска/замены, настройки расширений |
| Типичный размер файла | 5 КБ - 5 МБ (растет вместе с количеством открытых файлов, точек останова и расширений) |
| Атрибут файловой системы | Помечен как скрытый; хранится рядом с файлом .sln в корне решения |
| Контроль версий | Должен быть исключен из VCS; добавьте *.suo в .gitignore |
| Автоматическое воссоздание | Автоматически регенерируется Visual Studio при удалении; удаление - безопасный шаг при поиске неисправностей |
| Размер сектора CFBF | 512-байтовые сектора (формат CFBF v3) |
| Изоляция потоков | Каждый установленный пакет или расширение VS записывает свой собственный изолированный именованный поток |
| Статус устаревания | Заменен скрытой папкой .vs (VS 2015+); не создается в VS 2017 и более поздних версиях |
| Связанная ОС | Windows |
| Восстановление при повреждении | Удаление .suo и повторное открытие решения - стандартный первый шаг при повреждении состояния IDE |
| Выпущен | 1997 (Visual Studio 97 / Visual Studio 5.0) |
| Последняя версия | Visual Studio 2015 and earlier: binary CFBF .suo; Visual Studio 2015 also introduced a hidden .vs\ folder variant. Visual Studio 2017+ replaced the monolithic .suo with the hidden .vs\{solution}\v15\ directory containing granular JSON/binary files - the .suo extension is essentially legacy as of 2017. |
| Спецификация | learn.microsoft.com |
Конвертации SUO
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах SUO.