如何使用 .NET Core CLI 建立 Solution ?
使用 .NET Core SDK 建立 Solution
Contents
對於大型專案,我們可以建立 solution 管理眾多 project,只要對 solution 下 dotnet build ,就可以全部 project 都一起 build。
Version
macOS High Sierra 10.13.3
.NET Core SDK 2.1.101
建立 Solution
1 | $ dotnet new sln -n MySolution |
使用 dotnet new sln 建立 solution。
- -n : 建立
.sln檔案即可,不用建立目錄
Solution 是 Microsoft 技術特別的觀念,算 project 的集合,一個 solution 可以有多個 project

- 輸入
dotnet new sln -n MySolution在目前目錄建立MySolution.sln - 已建立
MySolution.sln在目前目錄下
將 Project 加入 Solution
macOS/Linux
1 | $ dotnet sln MySolution.sln add **/*.csproj |
使用 dotnet sln … add 將 project 加入 solution
**/*.csproj表示目前目錄下所有子目錄的cspoj

- 輸入
dotnet sln MySolution.sln add **/*.csproj將目前目錄下的所有 project 都加入MySolution.sln
Windows
1 | $ dotnet sln MySolution.sln add MyConsole/MyConsole.csproj |
Windows 只能乖乖地用 3 次 dotnet sln … add 。

- 一個一個 project 加入
MySolution.sln
編譯整個 Solution
1 | $ dotnet build MySolution.sln |
使用 dotnet build 將 solution 下所有 project 一起編譯。

- 輸入
dotnet build MySolution.sln編譯整個MySolution MySolution下所有 project 都執行dotnet restoreMySoluton下所有 project 都執行dotnet build編譯新的 dll
將整個 Solution 建立 Package
1 | $ dotnet pack MySolution.sln |
使用 dotnet pack 將 solution 下所有 project 建立 NuGet package。

- 輸入
dotnet pack MySolution.sln將整個MySolution建立 package MySolution下所有 project 都執行dotnet restoreMySoluton下所有 project 都執行dotnet pack
只有
MyConsole與MyClassLib會建立 package,MyClassLib.Tests因為是 Unit Test,所以不會建立 package
發佈整個 Solution
1 | $ dotnet publish MySolution.sln |
使用 dotnet publish 將 solution 下所有 project 都加以 publish。

- 輸入
dotnet publish MySolution.sln將整個MySolution下的所有 project 都加以 publish MySolution下所有 project 都執行dotnet restoreMySoluton下所有 project 都執行dotnet publish
其他相關指令
1 | $ dotnet sln *.sln remove *.csproj |
將 project 從 solution 移除。
1 | $ dotnet sln *.sln list |
列出 solution 共有哪些 project。
Conclusion
- Solution 在 .NET Core SDK 中,重要性已經不如 Visual Studio,但對於大型專案,卻可透過 solution 對所有 project 下指令,還是非常好用
- VS Code 不一定要使用 solution,但若專案也需要被 Visual Studio 或 Rider 開啟,則建議建立 solution