如何使用 .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 restore
MySoluton
下所有 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 restore
MySoluton
下所有 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 restore
MySoluton
下所有 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