- Published on
ASP.NET Core 自定專案範本
每次在建立 ASP.NET Core 新專案時,如果分層分的比較細,需要加入很多專案,而且每個專案都要安裝很多套件,實在是很花時間。如果可以建立自己的專案範本,就跟內建的範本一樣,應該可以節省不少的時間,在公司裡面也可以變成一個專案的標準範本,我們就來看如何在 ASP.NET Core 建立自定專案範本吧 !!
ASP.NET Core 2.2 macOS
新增專案
- 新增一個 Web 專案和一個測試專案,記得要有 Solution
名稱非常重要,這裡使用
Tmpl
,比較不會被程式使用到,因為變成範本之後,這個名稱會被替換掉,所以如果取的不好的話,會不小心被替換掉,必須要非常的小心
- 在原本的 Solution 資料夾裡面多一個
Content
資料夾,然後把所有的東西移到這個資料夾裡面
建立 Template Config
- 在
Content
資料夾裡面建立一個.template.config
資料夾,然後在這個資料夾裡面建立一個template.json
檔案
- template.json 內容如下
- 裡面比較重要的地方應該是
sourceName
,就是前面有提到的,之後如果要新增專案的話,新專案名稱會把sourceName
設定的字串給替換掉 identity
只是一個唯一的示別名稱,跟shortName
一樣就好tags
的type
設定成project
preferNameDirectory
一般都為true
,指的是如果建立專案時未使用-n
指定專案名稱時,使用資料名稱作為專案名稱- 其它的設定請參考 template.json 和專案範本的關係圖
- 裡面比較重要的地方應該是
新增資料夾範本
- 使用
dotnet new -i 資料夾路徑
來新增資料夾的專案範本,新增之後就可以看到自己的範本在上面了- 資料夾為指定到
Content
資料夾的上一層路徑,而且必須要使用完整路徑
來註冊
- 資料夾為指定到
- 新增專案測試一下
dotnet new cashmvc -o CashTmpl
- 可以看到兩個專案就直接建立好了,名稱已經是我們給的
CashTmpl
- 移除資料夾的專案範本,把原本新增的指令
-i
改成-u
,就可以看到範本已經被移除了
Nuget 設定
- 在和
Content
同一層的地方,新增一個Tmpl.nuspec
的 nuget 設定檔
- 內容如下
- 重點在於
file
的設定,src
指的是什麼東西要被打包成nuget package
,exclude
指的是什麼東西要被排除,這裡設定的是.idea
Rider 的設定檔和 MAC 的.DS_Store
檔案,多個設定時使用,
分隔 - 其它的設定請參考官方說明 - 建立 NuGet 套件
- 重點在於
- 使用
nuget pack nuspec檔
打包成 package- 會產生一個
xxx.nupkg
的 package 檔案
- 會產生一個
新增 Nuget 範本
- 指令跟使用資料夾差不多,變成指定 package 的名稱,而因為這個 package 範本沒有推上 nuget server,所以直接指定檔案就好了
- 如果要移除時,記得指定的是 package 的名稱
後記
- ASP.NET Core 在設定專案範本上實在是簡單許多,一些小地方注意一下就好了
- 建立完範本實在是幫之後新增專案省了不少的時間,尤其是專案個數多達 7 個時,每個都要設定很麻煩,而且又有預設要有的程式碼和套件
- 如果把 package 推上自家的 nuget server,在公司裡面就可以變成大家之後新增專案的固定範本,即可以省下時間,又可以變成公司的規範,好處多多