asp.net core 將整個解決方案打包,做成腳手架,可直接安裝使用

自己經過多年開發的沉澱後,開發出一個屬於自己的一套Demo項目,亦或是借鑑別人的項目後,優化了一個,然後我們在別的地方使用的時候(可能是下一個公司),如果還想用自己的模板,也可能是供新入職的同事使用,經常會是以下幾個辦法

 

1、對比着之前的項目結構,在VistulStudio中手動創建一個空的解決方案,從零開始,一點一點搭建。// 麻煩之大,可想而知

2、通過dotnet cli 命令來創建空項目,然後手動。// 會簡化一丟丟,但仍需要一層一層的創建類庫;

3、把Demo工程代碼裏拷貝到U盤,或者上傳到雲盤,然後下載下來,改吧改吧。// 尋找過程很麻煩,依賴代碼承載工具;

4、把Demo工程代碼 Pull 到 Github 上,在別的地方直接 Clone ,然後改吧改吧。 // 開源出源碼,私密性不強;

 

 大家可以看到,上邊的這幾個辦法,都會有這樣或那樣的問題,快的不方便,方便的太侷限。而且上邊的這些都有一個通病,不知道大家是否發現:就是不能快速修改工程名稱!手動修改,可能還碰到不少問題。

所以創建一個公司通用型的項目腳手架,是很有必要的,可以節省 團隊很多的時間。

==================================================================

下面就重點介紹怎麼來創建

1、我們在任意位置新建一個目錄來使用,比如我在F盤新增目錄叫做template

然後我們採用dos命令進入這個文件夾,可以打開這個文件夾,在上面路徑中,輸入cmd回車,就可以了,比如:

 這樣,我們就進入了template目錄

2、我們需要引入模板包,執行以下命令

dotnet new install Microsoft.TemplateEngine.Authoring.Templates

3、我們用這個模板包創建一個模板,模板名稱我們自定義,建議跟想要命名的包名一致就行。

dotnet new templatepack --output "FeiAbpTemplate"

執行上述這個命令,會幫我們創建一個工程。

 

 我們可以看到,這個命令幫我們創建了一個文件夾,裏面有一個工程文件和content目錄以及readme.md 文件,readme文件大家自己編輯,主要是項目說明,這裏不再敘述。

4、我們打開那個.csproj的工程文件,用記事本,vscode都行,我們要根據提示編輯這個文件

 

 

 

5、下面,我們就將我們的項目目錄複製到content 目錄下

 我將整個解決方案目錄都複製過來了,打開給大家看下結構

 這就是我要放到腳手架上的所有項目內容了。

6、我們在項目目錄demo下,新建一個 .template.config 文件夾,注意,是有一個點開頭的,是文件夾,在這個文件夾下,我們

新建一個文件template.json 文件,注意,文件名稱不能改。都是固定的。內容如下:

{
    "author": "huangminghui", 
    "classifications": [ "Web/WebAPI" ], //必須,這個對應模板的Tags
    "name": "Demo", //必須,這個對應模板的Templates
    "identity": "feiabptemplate", //可選,模板的唯一名稱
    "shortName": "feiabptemplate", //必須,這個對應模板的Short Name
    "tags": {
      "language": "C#" ,
      "type":"project"
    },
    "sourceName": "Demo",  // 可選,要替換的名字
    "preferNameDirectory": true  // 可選,添加目錄  
}

author,就是作者名,自己隨便定義

classifications,也是自己隨便定義分類

name,一般對應我們複製進來的項目名稱

identity,標識,一般取我們的包名

shortName,短名稱,後面採用安裝命令時有用,一般與identity一致就行,除非identity特別難記,那可以定義一個簡短的。

sourceName,要配置,這個就會幫我們替換原有項目模板的項目名稱。即有以demo命名的項目名稱,文件名稱,命名空間都會替換成我們指定的名稱。

 

其他可不動。

 

7、接下來,我們就要生成nuget包了

我們進入FeiAbpTemplate 目錄,執行以下命令

dotnet pack

 如圖所示,我們就生成成功了。

 自動幫我們生成了bin/debug目錄,並生成了nupkg的文件。

 

8、我們登錄nuget官網

https://www.nuget.org/

沒賬號的自己註冊一個哈

 我們上傳剛纔生成的這個nuget包

 

文件上傳後,直接點submit提交,然後等待審覈。

 9、接下來,我們在任意一個目錄下,開是安裝這個項目

比如我在template目錄下運行命令

dotnet new install FeiAbpTemplate

實例化這個包,如果有多個版本,請增加版本號(如上截圖中nuget顯示的寫法),否則將使用最新版。

 可以看到我們已經初始化了這個nuget包,裏面有模板,短名稱是kydemo4

這個名稱是對應我們剛纔項目中配置的

發現我剛配置的沒保存,信息還是舊的,但這個不影響。只是名稱不一樣而已。

我最終提交到nuget時的template.json 是這樣的

{
    "author": "huangminghui", 
    "classifications": [ "Web/WebAPI" ], //必須,這個對應模板的Tags
    "name": "Demo", //必須,這個對應模板的Templates
    "identity": "KYDemo4", //可選,模板的唯一名稱
    "shortName": "kydemo4", //必須,這個對應模板的Short Name
    "tags": {
      "language": "C#" ,
      "type":"project"
    },
    "sourceName": "Demo",  // 可選,要替換的名字
    "preferNameDirectory": true  // 可選,添加目錄  
}

 

然後創建項目,這時候我們就用短名稱  kydemo4

執行以下命令

dotnet new kydemo4 --name KYMall

這時候就給我們創建好項目了

 

如果不加name 參數,則默認以上一級文件夾的名稱作爲項目名稱。

 

這樣,整個腳手架的創建應用就完成了。

可以下下來直接開發用了

參考文檔:

https://learn.microsoft.com/zh-cn/dotnet/core/tutorials/cli-templates-create-template-package?pivots=dotnet-8-0

https://learn.microsoft.com/zh-cn/dotnet/core/tutorials/cli-templates-create-project-template

https://www.cnblogs.com/huguodong/p/12930875.html

注我的個人公衆號,每日更新,獲取更多技術知識

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章