Мигрируем на Новый Формат Файлов Решений
Новый формат файлов решений в .NET .slnx появился довольно давно, я уже писал про него. И хотя он до сих пор, по какой-то причине находится в стадии превью, уже сейчас можно обновлять свои решения на новый формат.
Проблема
Классические файлы .sln многословны: записи проекта с большим количеством GUID + блоки конфигурации, которые разрастаются по мере роста вашего решения. Это также частый источник конфликтов слияния.
Новый формат .slnx по сути просто перечисляет проекты решения в формате XML. Он похож на файл .csproj. Гораздо компактнее, понятнее и удобнее в использовании.
Как выполнить миграцию?
Формат .slnx доступен в последних версиях Visual Studio 2022 (v17.13+) и SDK .NET9+. Вот как вы можете перейти на него.
1. Терминал
Если у вас установлен SDK .NET версии 9.0.200 или более поздней, вы можете выполнить миграцию мгновенно через CLI.
- Откройте терминал в папке решения.
- Выполните команду миграции:
dotnet sln migrate
Это создаст новый файл .slnx рядом со старым файлом .sln.
На этом этапе лучше удалить старый файл .sln, чтобы избежать путаницы. Нет смысла хранить оба файла в одном репозитории.
2. Сохранение из Visual Studio
Если вы предпочитаете графический интерфейс, вы можете сделать это непосредственно в Visual Studio 2022 (или 2026).
- Выберите решение в обозревателе решений.
- Перейдите в меню File > Save Solution As… (Файл > Сохранить решение как…).
- Выберите в раскрывающемся списке Save as type (Тип файла) тип Xml Solution File (*.slnx).
Зачем мигрировать?
1. Меньше конфликтов слияния: главное преимущество. Поскольку файл представляет собой простой XML-файл без случайных изменяющихся GUID, слияние в Git становится тривиальным.
2. Удобочитаемость: Вы можете открыть этот файл в блокноте, понять его и отредактировать, не нарушая всю сборку.
3. Согласованность: Наконец-то формат решения приведён в соответствие с форматом проекта (.csproj), который несколько лет назад также был серьёзно упрощён.
4. Производительность: Меньший размер файлов и более простой анализ означают немного более быструю загрузку для масштабных решений.
Можно ли использовать в проде?
По состоянию на конец 2025 - начало 2026 года, .slnx технически остаётся превью-функцией.
Безопасно ли использовать?
Да, формат стабилен.
Поддержка инструментов
Visual Studio 2022, Visual Studio 2026 и Rider хорошо его поддерживают. То же самое относится и к .NET CLI. Некоторые старые конвейеры CI/CD или сторонние инструменты могут пока не распознавать это расширение. Сначала попробуйте его на стороннем проекте или ветке. Если ваш конвейер CI/CD успешно будет с ним работать, то всё отлично.
Источник: https://www.milanjovanovic.tech/blog/the-new-slnx-solution-format-migration-guide