Поделиться через


dotnet sln

Эта статья относится к: ✔️ пакету SDK для .NET Core 3.1 и более поздним версиям

Имя

dotnet sln — перечисляет или изменяет проекты в файле решения .NET или переносит его в файл SLNX.

Синопсис

dotnet sln [<SOLUTION_FILE>] [command]

dotnet sln [command] -h|--help

Описание

Команда dotnet sln предоставляет удобный способ перечисления и изменения проектов в файле решения.

Создание файла решения

Чтобы использовать команду dotnet sln, файл решения должен уже существовать. Если необходимо создать его, используйте команду dotnet dotnet new с именем шаблона sln.

В следующем примере создается файл .sln в текущей папке с тем же именем, что и папка:

dotnet new sln

В следующем примере создается файл .sln в текущей папке с указанным именем файла:

dotnet new sln --name MySolution

В следующем примере создается файл .sln в указанной папке с тем же именем, что и папка:

dotnet new sln --output MySolution

Аргументы

  • SOLUTION_FILE

    Используемый файл решения (.sln или SLNX-файл).

    Если не указано, команда выполняет поиск текущего каталога для .sln или SLNX-файла и, если он находит именно один, использует этот файл. Если найдено несколько файлов решения, пользователю будет предложено явно указать файл. Если ни один из них не найден, команда завершается ошибкой.

Параметры

  • -?|-h|--help

    Выводит описание использования команды.

Команды

Доступны следующие команды:

list

Выводит список всех проектов в файле решения.

Синопсис

dotnet sln list [-h|--help]

Аргументы

  • SOLUTION_FILE

    Используемый файл решения (.sln или SLNX-файл).

    Если не указано, команда выполняет поиск текущего каталога для .sln или SLNX-файла и, если он находит именно один, использует этот файл. Если найдено несколько файлов решения, пользователю будет предложено явно указать файл. Если ни один из них не найден, команда завершается ошибкой.

Параметры

  • -?|-h|--help

    Выводит описание использования команды.

add

Добавляет один или несколько проектов в файл решения.

Синопсис

dotnet sln [<SOLUTION_FILE>] add [--in-root] [-s|--solution-folder <PATH>] <PROJECT_PATH> [<PROJECT_PATH>...]
dotnet sln add [-h|--help]

Аргументы

  • SOLUTION_FILE

    Используемый файл решения (.sln или SLNX-файл).

    Если не указано, команда выполняет поиск текущего каталога для .sln или SLNX-файла и, если он находит именно один, использует этот файл. Если найдено несколько файлов решения, пользователю будет предложено явно указать файл. Если ни один из них не найден, команда завершается ошибкой.

  • PROJECT_PATH

    Путь к проекту или проектам для добавления в решение. Оболочка Unix/Linux шаблоны расширения обрабатываются правильно командой dotnet sln.

    Если PROJECT_PATH содержит папки, содержащие папку проекта, эта часть пути используется для создания папок решения . Например, следующие команды создают решение с myapp в папке решения folder1/folder2:

    dotnet new sln
    dotnet new console --output folder1/folder2/myapp
    dotnet sln add folder1/folder2/myapp
    

    Это поведение по умолчанию можно переопределить с помощью --in-root или параметра -s|--solution-folder <PATH>.

Параметры

  • -?|-h|--help

    Выводит описание использования команды.

  • --in-root

    Помещает проекты в корневой каталог решения, а не создает папку решения . Нельзя использовать с -s|--solution-folder.

  • -s|--solution-folder <PATH>

    Папка целевого решения пути для добавления проектов. Нельзя использовать с --in-root.

remove

Удаляет проект или несколько проектов из файла решения.

Синопсис

dotnet sln [<SOLUTION_FILE>] remove <PROJECT_PATH> [<PROJECT_PATH>...]
dotnet sln [<SOLUTION_FILE>] remove [-h|--help]

Аргументы

  • SOLUTION_FILE

    Используемый файл решения (.sln или SLNX-файл).

    Если не указано, команда выполняет поиск текущего каталога для .sln или SLNX-файла и, если он находит именно один, использует этот файл. Если найдено несколько файлов решения, пользователю будет предложено явно указать файл. Если ни один из них не найден, команда завершается ошибкой.

  • PROJECT_PATH

    Путь к проекту или проектам для удаления из решения. Оболочка Unix/Linux шаблоны расширения обрабатываются правильно командой dotnet sln.

Параметры

  • -?|-h|--help

    Выводит описание использования команды.

migrate

Создает файл решения .slnx из файла .sln.

Синопсис

dotnet sln [<SOLUTION_FILE>] migrate
dotnet sln [<SOLUTION_FILE>] migrate [-h|--help]

Аргументы

  • SOLUTION_FILE

    Файл решения .sln для миграции.

    Если не указано, команда выполняет поиск текущего каталога для файла .sln и, если он находит именно один, использует этот файл. Если найдено несколько .sln файлов, пользователю будет предложено явно указать файл. Если ни один из них не найден, команда завершается ошибкой.

    Если указать SLNX-файл вместо файла .sln или если в каталоге уже существует SLN X-файл с тем же именем файла (минус расширением .sln), команда завершается ошибкой.

Параметры

  • -?|-h|--help

    Выводит описание использования команды.

Примеры

  • Вывод списка проектов в решении:

    dotnet sln todo.slnx list
    
  • Добавьте проект C# в решение:

    dotnet sln add todo-app/todo-app.csproj
    
  • Удалите проект C# из решения:

    dotnet sln remove todo-app/todo-app.csproj
    
  • Добавьте несколько проектов C# в корневой каталог решения:

    dotnet sln todo.slnx add todo-app/todo-app.csproj back-end/back-end.csproj --in-root
    
  • Добавьте несколько проектов C# в решение:

    dotnet sln todo.slnx add todo-app/todo-app.csproj back-end/back-end.csproj
    
  • Удалите несколько проектов C# из решения:

    dotnet sln todo.slnx remove todo-app/todo-app.csproj back-end/back-end.csproj
    
  • Добавьте несколько проектов C# в решение с помощью шаблона глоббинга (только Для Unix/Linux):

    dotnet sln todo.slnx add **/*.csproj
    
  • Добавьте несколько проектов C# в решение с помощью шаблона глоббинга (только Для Windows PowerShell):

    dotnet sln todo.slnx add (ls -r **/*.csproj)
    
  • Удалите несколько проектов C# из решения с помощью шаблона глоббинга (только для Unix/Linux):

    dotnet sln todo.slnx remove **/*.csproj
    
  • Удалите несколько проектов C# из решения с помощью шаблона глоббинга (только Для Windows PowerShell):

    dotnet sln todo.slnx remove (ls -r **/*.csproj)
    
  • Создайте SLNX-файл из файла .sln:

    dotnet sln todo.sln migrate
    
  • Создайте решение, консольное приложение и две библиотеки классов. Добавьте проекты в решение и используйте параметр --solution-folderdotnet sln для упорядочивания библиотек классов в папку решения.

    dotnet new sln -n mysolution
    dotnet new console -o myapp
    dotnet new classlib -o mylib1
    dotnet new classlib -o mylib2
    dotnet sln mysolution.slnx add myapp\myapp.csproj
    dotnet sln mysolution.slnx add mylib1\mylib1.csproj --solution-folder mylibs
    dotnet sln mysolution.slnx add mylib2\mylib2.csproj --solution-folder mylibs
    

    На следующем снимке экрана показан результат в обозревателе решений Visual Studio 2019:

    обозревателе решений с проектами библиотеки классов, сгруппированных в папку решения.

См. также