共用方式為


教學課程:建立專案範本

使用 .NET,您可以建立和部署產生專案、檔案和資源的範本。 本教學課程是系列課程的第二部分,教導您如何建立、安裝及解除安裝範本以搭配命令使用 dotnet new

小提示

您可以在下列存放庫中找到 .NET SDK 隨附的官方 .NET 範本:

範本 存儲庫
主控台、類別庫和一般項目範本 dotnet/SDK
ASP.NET 和 Blazor 範本 dotnet/aspnetcore
ASP.NET 單頁應用程式範本 dotnet/spa-templates
WPF 範本 dotnet/wpf
Windows Forms 範本 dotnet/winforms
測試範本 dotnet/test-templates
MAUI 範本 dotnet/毛伊島

您可以執行命令 dotnet new list 來檢視電腦上安裝的範本。

在本系列的這一部分中,您將瞭解如何:

  • 建立專案範本的資源。
  • 建立範本設定資料夾和檔案。
  • 從檔案路徑安裝範本。
  • 測試項目範本。
  • 解除安裝項目範本。

先決條件

  • .NET 9 或更新版本。

  • 完成本教學課程系列的 第 1 部分

  • 開啟終端機並導覽至 working\content 資料夾。

建立專案範本

專案範本會產生現成的專案,讓使用者可以輕鬆地從一組工作程式碼開始。 .NET 包含一些專案範本,例如主控台應用程式或類別庫。 在此範例中,您會建立新的主控台應用程式專案,以非同步執行的輸出取代標準「Hello World」主控台輸出。

在終端機中,導覽至 working\content 資料夾,並建立名為 consoleasync 的新子資料夾。 進入子資料夾並執行 dotnet new console 以產生標準控制台應用程式。 編輯此範本所產生的檔案,以建立新範本。

working
└───content
    └───consoleasync
            consoleasync.csproj
            Program.cs

修改Program.cs

開啟 Program.cs 檔案。 標準主控台專案不會以非同步方式寫入主控台輸出,因此請新增該輸出。 將程式碼變更為下列內容,並儲存檔案:

// See https://aka.ms/new-console-template for more information
await Console.Out.WriteAsync("Hello World with C#");

現在您已建立範本的內容,您需要在範本的根資料夾中建立範本設定。

建立範本設定

在本教學課程中,您的範本資料夾位於 working\content\consoleasync

.NET 可以辨識範本,因為它們在範本資料夾的根目錄中有一個特殊的資料夾和組態檔。

首先,建立一個名為 .template.config的新子資料夾,並輸入它。 然後,建立名為 template.json的新檔案。 您的資料夾結構應該如下所示:

working
└───content
    └───consoleasync
        └───.template.config
                template.json

使用您最喜歡的文本編輯器打開 template.json 並粘貼以下 json 代碼並保存。

{
  "$schema": "http://json.schemastore.org/template",
  "author": "Me",
  "classifications": [ "Common", "Console" ],
  "identity": "ExampleTemplate.AsyncProject",
  "name": "Example templates: async project",
  "shortName": "consoleasync",
  "sourceName":"consoleasync",
  "tags": {
    "language": "C#",
    "type": "project"
  }
}

此設定檔包含範本的所有設定。 您可以看到基本設定,例如 nameshortName,但也有一個 tags/type 值設定為 project。 這會將您的範本分類為「專案」範本。 您建立的範本類型沒有限制。 item值和project值是.NET建議的通用名稱,使使用者可以輕鬆篩選他們要搜尋的範本類型。

sourceName 項目是使用者使用範本時所取代的內容。 在每個檔案名稱和檔案內容中搜尋設定檔中的值 sourceName,預設會將其替換為目前資料夾的名稱。 當 -n--name 參數與 dotnet new 命令一起傳遞時,提供的值將被使用,而不是目前的資料夾名稱。 在此範本中,consoleasync 會被替換為.csproj 檔案的名稱。

classifications項目代表標籤欄位,您在執行dotnet new並獲得範本清單時看到它。 使用者也可以根據分類標籤進行搜尋。 請勿將 tags 檔案中的屬性與標籤清單混淆classifications。 它們是兩個不同的概念,不幸的是,它們的名稱相同。 template.json 檔案的完整結構描述可在JSON結構描述存放區中找到,並在 template.json參考中說明。 如需 template.json 檔案的詳細資訊,請參閱 dotnet templating wiki

現在您已經有了有效的 .template.config/template.json 文件,您的模板已準備好安裝。 安裝範本之前,請確定您已刪除任何不想包含在範本中的額外資料夾和檔案,例如 binobj 資料夾。 在終端機中,導覽至 consoleasync 資料夾並執行以 dotnet new install .\ 安裝位於目前資料夾的範本。 如果您使用的是 Linux 或 macOS 作業系統,請使用正斜線: dotnet new install ./

dotnet new install .\

此命令會輸出已安裝範本的清單,其中應包含您的範本。

The following template packages will be installed:
   <root path>\working\content\consoleasync

Success: <root path>\working\content\consoleasync installed the following templates:
Templates                                         Short Name               Language          Tags
--------------------------------------------      -------------------      ------------      ----------------------
Example templates: async project                  consoleasync             [C#]              Common/Console

測試專案範本

現在您已安裝專案範本,請對其進行測試。

  1. 導覽至 測試 資料夾。

  2. 使用下列命令建立新的主控台應用程式,這會產生一個工作專案,您可以使用該 dotnet run 命令輕鬆測試。

    dotnet new consoleasync -n MyProject
    

    您會得到以下輸出。

    The template "Example templates: async project" was created successfully.
    
  3. 使用下列命令執行專案。

    dotnet run
    

    您會得到以下輸出。

    Hello World with C#
    

祝賀! 您已使用 .NET 建立並部署專案範本。 為了準備本教學課程系列的下一部分,請解除安裝您建立的範本。 確保也從 測試 文件夾中刪除所有文件。 這可讓您回到乾淨的狀態,為本教學課程系列的下一部分做好準備。

解除安裝範本

在終端機中,導覽至 consoleasync 資料夾,然後執行下列命令,以卸載目前資料夾中的範本:

  • 在 Windows 上dotnet new uninstall .\
  • 在 Linux 或 macOS 上dotnet new uninstall ./

此命令會輸出已卸載的範本清單,其中應包含您的範本。

Success: <root path>\working\content\consoleasync was uninstalled.

您可以 dotnet new uninstall 隨時查看已安裝範本套件的清單,包括每個範本套件的解除安裝命令。

後續步驟

在本教學課程中,您已建立專案範本。 若要瞭解如何將項目和專案範本封裝成易於使用的檔案,請繼續本教學課程系列。