vs2019新建一个html项目,VS2019 自定义项目模板的实现方法
前言:
使用“宇宙最強IDE”開發項目時,都需要根據不同情況選擇一個項目模板,來滿足開發需求:如下
VS為我們提供了基礎的項目模板,但現有項目模板未包含基礎功能如:日志輸出、審計日志、SwaggerUI、認證等,那么我們能否自定義項目模板來滿足我們的需求呢?答案當然是肯定的
那么接下來開始實現自定義項目模板的創建
一、自定義項目模板創建
本次我們來創建一個實現了基礎功能的webapi模板
創建自定義的項目模板,有以下幾個步驟:
1、創建原始的項目(模板項目)
創建WebApi項目:
實現WebApi相關基礎功能:SwaggerUI、認證、性能監控(MiniProfiler)等基礎功能;可以在之前博客內容中查看實現具體方式
2、替換模板項目的參數
此時模板的基礎功能已經實現,但是在創建項目時,會根據輸入的項目名稱;來設置代碼中的命名空間、輸出程序名稱等信息。
那么是如何實現的呢?——模板參數
當前支持的內置項目參數如下表:(模板參數區分大小寫。)
參數
說明
clrversion
公共語言運行時 (CLR) 的當前版本。
ext_*
將?ext_?前綴添加到任何參數,以引用父模板的變量。?例如,ext_safeprojectname。
guid[1-10]
一個用于替換項目文件中的項目 GUID 的 GUID。?可指定最多 10 個唯一的 GUID(例如,guid1)。
itemname
在其中使用參數的文件的名稱。
machinename
當前的計算機名稱(例如,Computer01)。
projectname
創建項目時由用戶提供的名稱。
registeredorganization
來自 HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization 的注冊表項值。
rootnamespace
當前項目的根命名空間。?此參數僅適用于項模板。
safeitemname
與?itemname?相同,但所有不安全字符和空格替換為了下劃線。
safeitemrootname
與?safeitemname?相同。
safeprojectname
用戶在創建項目時提供的名稱,但名稱中刪除了所有不安全字符和空格。
time
以 DD/MM/YYYY 00:00:00 格式表示的當前時間。
specifiedsolutionname
解決方案的名稱。?在選中“創建解決方案目錄”時,specifiedsolutionname?具有解決方案名稱。?在未選中“創建解決方案目錄”時,specifiedsolutionname?為空。
userdomain
當前的用戶域。
username
當前的用戶名稱。
webnamespace
當前網站的名稱。?此參數在 Web 窗體模板中用于保證類名是唯一的。?如果網站在 Web 服務器的根目錄下,則此模板參數解析為 Web 服務器的根目錄。
year
以 YYYY 格式表示的當前年份。
如:設置代碼文件中命名空間定義:
namespace $safeprojectname$
{
///
/// 作者:$username$
/// 時間:$time$
/// 機器名:$machinename$
/// 項目名:$projectname$
///
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
});
}
}
如代碼中需要使用項目名稱依舊采用$safeprojectname$;如:
public void ConfigureServices(IServiceCollection services)
{
//注冊Swagger生成器,定義一個和多個Swagger 文檔
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "$safeprojectname$ API", Version = "v1" });
// other
});
}
除了VS自帶的模板參數外,用戶還可以自定義模板參數,但現實用到的不多
3、導出模板源項目,指定模板項目設置名稱、說明、圖標等內容
模板基本內容實現完成后,則可以進行模板導出操作,步驟如下:
A、進入菜單:項目->導出模板
B、彈出:導出模板向導頁面
C、設置模板相關信息,點擊完成;則模板創建成功
輸出位置為自定義模板導出存儲位置;
【自動將模板導入 Visual Studio】選項,選中后會將項目模板復制一份,放入到特定的文件夾中,下次建立新項目就可以搜索使用。
4、模板項目添加語言、平臺和項目類型等標簽
前面的步驟已經完成對模板的創建,但是在創建項目時,可以根據項目平臺、語言、項目類型標簽過濾,那么如何實現項目模板標簽呢?
接下來對3步驟中生成的項目模板進行研究:
打開模板文件的壓縮文件中發現了模板文件
解壓文件后,對該文件進行編輯,添加語言標簽(LanguageTag)、平臺標簽(PlatformTag)、項目類型標簽(ProjectTypeTag):
ApiTemplate
基礎API模板:支持SwaggerUI、認證、性能監控等基礎功能
CSharp
1000
true
ApiTemplate
true
Enabled
true
true
CSharp
Javascript
Windows
Linux
Web
__TemplateIcon.png
__PreviewImage.png
launchSettings.json
WeatherForecastController.cs
appsettings.json
appsettings.Development.json
JwtSetting.cs
Program.cs
Startup.cs
WeatherForecast.cs
下表是 Visual Studio 中可用的以上描述標簽的取值內容:
語言標簽(LanguageTag)
平臺標簽(PlatformTag)
項目類型標簽(ProjectTypeTag)
C (cpp)
Android (android)
云 (cloud)
C# (csharp)
Azure (azure)
控制臺 (console)
F# (fsharp)
iOS (ios)
桌面 (desktop)
Java (java)
Linux (linux)
擴展 (extension)
JavaScript (javascript)
macOS (macos)
游戲 (games)
Python (python)
tvOS (tvos)
IoT (iot)
查詢語言 (querylanguage)
Windows (windows)
庫 (library)
TypeScript (typescript)
Xbox (xbox)
機械學習 (machinelearning)
Visual Basic (visualbasic)
移動 (mobile)
Office (office)
其他 (other)
服務 (service)
測試 (test)
UWP (uwp)
Web (web)
最后將修改的文件打包成zip壓縮(必須為zip文件)文件后,復制到項目模板所在位置(%USERPROFILE%\Documents\Visual Studio 2019\Templates\ProjectTemplates)
二、 自定義項目模板使用
前面步驟已完成模板創建,接下來就驗證模板是否生效:
打開vs進入項目創建界面,搜索API,如下:
到此項目設置的標簽以及代碼中命名空間、注釋都已生效。項目模板效果已實現
三、總結:
所有項目模板和項模板(無論是與 Visual Studio 一起安裝的還是由你創建的)均通過使用相同的原則工作并具有類似的內容。所有模板均包含以下項:
使用模板時要創建的文件。這些文件包括源代碼文件、嵌入資源、項目文件等。一個 .vstemplate 文件,其中包含根據模板創建項目或項以及在“創建新項目”頁面或“添加新項”對話框中顯示模板所需的元數據。當這些文件壓縮成 .zip 文件并放在正確的文件夾時,Visual Studio 將自動在以下位置顯示這些文件:在“創建新項目”頁面中顯示項目模板。在“添加新項”窗口中顯示項模板。
項目模板作用非常大,可以將日常積累的功能合并在模板中,可以避免項目開發中重復造輪子,提高開發效率
參考內容
到此這篇關于VS2019 自定義項目模板的文章就介紹到這了,更多相關VS2019 自定義項目模板內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
總結
以上是生活随笔為你收集整理的vs2019新建一个html项目,VS2019 自定义项目模板的实现方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言---双人贪吃蛇
- 下一篇: 三极管和MOS管的使用及区别