dotnet sln
本文 适用于: ✔️ .NET Core 3.1 SDK 及更高版本
名字
dotnet sln
- 列出或修改 .NET 解决方案文件中的项目,或将该文件迁移到 .slnx 文件中。
概要
dotnet sln [<SOLUTION_FILE>] [command]
dotnet sln [command] -h|--help
描述
dotnet sln
命令提供了一种用于列出和修改解决方案文件中项目的便捷方法。
创建解决方案文件
若要使用 dotnet sln
命令,解决方案文件必须已存在。 如果需要创建一个,请使用带有 sln
模板名称的 dotnet new 命令。
以下示例在当前文件夹中创建一个 .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 shell globbing 模式 扩展由
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 shell globbing 模式 扩展由
dotnet sln
命令正确处理。
选项
-?|-h|--help
输出有关如何使用命令的说明。
migrate
从 .sln 文件生成 .slnx 解决方案文件。
概要
dotnet sln [<SOLUTION_FILE>] migrate
dotnet sln [<SOLUTION_FILE>] migrate [-h|--help]
参数
SOLUTION_FILE
要迁移 .sln 解决方案文件。
如果未指定,该命令将在当前目录中搜索 .sln 文件,如果找到该文件,则使用该文件。 如果找到多个 .sln 文件,系统会提示用户显式指定文件。 如果未找到任何内容,该命令将失败。
如果指定 .slnx 文件而不是 .sln 文件,或者如果目录中已存在同名的 .slnx 文件(减去 .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
使用 globbing 模式将多个 C# 项目添加到解决方案(仅限 Unix/Linux):
dotnet sln todo.slnx add **/*.csproj
使用通配模式将多个 C# 项目添加到解决方案(仅限 Windows PowerShell):
dotnet sln todo.slnx add (ls -r **/*.csproj)
使用仅 Unix/Linux 模式从解决方案中删除多个 C# 项目:
dotnet sln todo.slnx remove **/*.csproj
使用通配模式从解决方案中删除多个 C# 项目(仅限 Windows PowerShell):
dotnet sln todo.slnx remove (ls -r **/*.csproj)
从 .sln 文件生成 .slnx 文件:
dotnet sln todo.sln migrate
创建解决方案、控制台应用和两个类库。 将项目添加到解决方案,并使用
dotnet sln
--solution-folder
选项将类库组织到解决方案文件夹中。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 解决方案资源管理器的结果:
另请参阅
- dotnet/sdk GitHub 存储库(.NET CLI 源)