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-folder
dotnet 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:
См. также
- репозиторий GitHub dotnet/sdk (источник.NET CLI)