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 包含项目文件夹的文件夹,则路径的该部分用于创建 解决方案文件夹。 例如,以下命令在解决方案文件夹中创建一个解决方案,其中 myappfolder1/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 解决方案资源管理器的结果:

    解决方案资源管理器,其中显示了分组到解决方案文件夹中的类库项目。

另请参阅