共用方式為


dotnet SLN

此文章適用於:✔️ .NET 6 SDK 與更新版本

名字

dotnet sln - 列出或修改 .NET 方案檔中的專案,或將檔案移轉至 .slnx 檔案。

概要

dotnet sln [<SOLUTION_FILE>] [command]

dotnet sln [command] -h|--help

描述

dotnet sln 命令提供方便的方式,列出和修改方案檔中的專案。

建立方案檔

若要使用 dotnet sln 命令,方案檔必須已經存在。 如果您需要建立一個,請使用具有 範本名稱的 sln 命令。

下列範例會在目前資料夾中建立 .slnx 檔案,其名稱與資料夾相同:

dotnet new sln

下列範例會在目前資料夾中建立具有指定檔案名稱的 .slnx 檔案:

dotnet new sln --name MySolution

下列範例會在指定的資料夾中建立 .slnx 檔案,其名稱與資料夾相同:

dotnet new sln --output MySolution

備註

在 .NET 9 和更早版本中, dotnet new sln 建立 .sln 檔案,而不是 .slnx 檔案。

參數

  • SOLUTION_FILE

    要使用的方案檔(.sln.slnx 檔案)。

    如果未指定,命令會搜尋目前目錄是否有 .sln.slnx 檔案,如果找到該檔案,則會使用該檔案。 如果找到多個方案檔,系統會提示用戶明確指定檔案。 如果找不到任何專案,命令就會失敗。

選項

  • -?|-h|--help

    列印如何使用 命令的描述。

命令

下列命令可供使用:

list

列出方案檔中的所有專案。

概要

dotnet sln list [-h|--help]

參數

  • SOLUTION_FILE

    要使用的解決方案檔案 (.sln.slnx 檔案) 或 解決方案篩選器.slnf 檔案)。

    如果未指定,指令會在現行目錄中搜尋 .sln.slnx.slnf 檔案,如果恰好找到一個檔案,則使用該檔案。 如果找到多個解決方案檔案或篩選器,系統會提示使用者明確指定檔案。 如果找不到任何專案,命令就會失敗。

    (.NET SDK 9.0.3xx 中新增了 對 .slnf 檔案的支援。

選項

  • -?|-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 殼層 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_NAME> [<PROJECT_PATH|PROJECT_NAME>...]
dotnet sln [<SOLUTION_FILE>] remove [-h|--help]

參數

  • SOLUTION_FILE

    要使用的方案檔(.sln.slnx 檔案)。

    如果未指定,命令會搜尋目前目錄是否有 .sln.slnx 檔案,如果找到該檔案,則會使用該檔案。 如果找到多個方案檔,系統會提示用戶明確指定檔案。 如果找不到任何專案,命令就會失敗。

  • PROJECT_PATHPROJECT_NAME

    要從解決方案中移除的專案或專案的路徑或名稱。 unix/Linux 殼層 globbing 模式 擴充是由 dotnet sln 命令正確處理。

    如果提供專案名稱而非路徑,則會移除解決方案中符合名稱的專案,而不論其路徑為何。 如果在解決方案中找到多個相符專案,則指令會出錯。省略名稱中的專案副檔名。 (.NET 10 中新增了依名稱移除專案的支援。

選項

  • -?|-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)
    
  • 使用 Globbing 模式從方案中移除多個 C# 專案(僅限 Unix/Linux):

    dotnet sln todo.slnx remove **/*.csproj
    
  • 使用通配符模式從方案中移除多個 C# 專案(僅限 Windows PowerShell):

    dotnet sln todo.slnx remove (ls -r **/*.csproj)
    
  • .sln 檔案產生 .slnx 檔案:

    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 [方案總管]的結果:

    [方案總管],其中顯示群組至方案資料夾的類別庫專案。

另請參閱