[Visual Studio] 使用Visual Studio 2017快速建立專案範本(Project Template),並上架至Visual Studio Marketplace

在企業中進行軟體開發,或是自己作應用程式開發的動作時,大多都會希望程式的開發架構是有所規範的
所以大多會由系統架構或是軟體架構師進行程式架構的設計,再交由每一位程式設計師在這個架構之中進行開發

透過Visual Studio 2017,可以很快速的建立每一個專案中所需要使用的範本或是程式碼,讓協同開發的工程師可以遵循這樣的設計進行開發的工作

使用Visual Studio 2017來建立專案範本並完成Visual Studio Marketplace的上架真的很簡單,依照下面的步驟就可以完成製作的動作了

1.打開Visual Studio 2017的安裝程式,並在現有的功能上,加入[Visual Studio 擴充功能開發]的項目

2. 待安裝完成之後,打開Visual Studio並建立一個新的專案,在建立新專案的時候,可以看到專案類型多了一個[Extensiblity],在這裡,我們選擇這個類別後,點選建立一個新的[VSIX Project]

3.建立完VSIX的專案後,接著在同一個方案裡,點選建立新專案,專案分類一樣選擇[Extensibilty],但是專案的部份,這次選擇[C# Project Template]

4.在剛建好的Project Template專案中,打開.vstemplate的檔案,可以看到這個範本的一些設定內容,像是這個專案範本的圖示檔,最低的.NET Framework版本,預設的專案範本名稱等等的,都可以在這裡設定

5.接著打開這個專案範本中預設建立的Class1.cs檔案,這裡的namespace被更改為[$safeprojectname$],這是為了要配合範本安裝時所建立的專案名稱所作的調整,而最上方則是作了一個簡單的判斷,當.NET Framework的版本大於3.5以上,就引用Sysmte.Linq的命名空間

後續在這個範本專案中加入的所有類別,請注意必須要將namespace都更改為$safeprojectname$,不然使用者在透過這個範本建立專案時,namespace就會發生不同的情況

 6.接著我們加入新的類別庫,作為這個專案範本未來會預設建立的類別庫檔案建立完成後,把namespace置換掉,也將上方引用的內容作了一點調整,但是會發生編譯出現問題的狀況,由於範本專案是不需要進行編譯,所以必須到檔案的屬性中,將[建置動作][編譯]改為[無]

7.點開.vstemplate的檔案,在最下方<TemplateContent>的Tag中加入ReplaceParamters的屬性

<TemplateContent>
  <Project File="ProjectTemplate.csproj" ReplaceParameters="true">
    <ProjectItem ReplaceParameters="true" TargetFileName="Properties\AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
    <ProjectItem ReplaceParameters="true" OpenInEditor="true">Class1.cs</ProjectItem>
    <ProjectItem ReplaceParameters="true" OpenInEditor="true">DbModel.cs</ProjectItem>
  </Project>
</TemplateContent>

這裡的設定,說明了在DbModel.cs這個類別庫檔案中設定的$safeprojectname$是需要進行置換動作的項目,如果說未來加入的類別庫越多,在這裡就必須加入相對應置換內容的定義

再來點開ProjectTemplate.csproj這個檔案,將下方的<ItemGroup>的設定,更改並加入目前範本專案中的檔案名稱

這個動作不作的話,未來在使用者透過範本建立專案時會發生找不到內含類別庫檔案的狀況

8.專案範本檔置完成後,我們回到最一開始建立的VSIX專案,在VSIX專案中,點開[source.extension.vsixmanifest]的內容

9.在[MetaData]的內容中,範本的開發這必須在這裡加上一些主要內容的設定,當然也必須包含說明、Icon圖示以及版本等等的內容[Install Targets]則是定義了安裝的目標Visual Studio開發工具版本

10.切換到[Assets]的內容,在這裡點選[New]的按鈕,這個動作是將我們剛剛建立好的ProjectTemplace加入至這個VSIX之中

11.[Type]的地方,選擇[Microsoft.VisualStudio.ProjectTemplate][Source]選擇[A project in current solution],若是要加入的專案範本不在這個方案中,就要自己去選擇要加入範本的檔案路徑與內容在這裡,我加入了兩個專案範本,並都包進VSIX之中

12.最後將VSIX的專案進行編譯,會得到VSIX的安裝檔一個,直接進行安裝動作,就可以將這個擴充套件安裝到Visual Studio之中了安裝完成的訊息建立新專案的時候,也確實可以看到有這兩個專案範本可以選擇與建立了看到建立完的結果,兩個專案及其檔案都有成功的被建立起來了

 

到這裡,VSIX的擴充套件安裝檔已經準備完成,接下來,我們連上https://visualstudiogallery.msdn.microsoft.com/這個網址,並進行登入的動作,登入完成後,點選[上傳]

接著選擇[專案或文章範本]

將剛剛編譯完成的VSIX套件進行上傳的動作

步驟3會取得VSIX套件裡的一些基本資訊,在這裡要勾選這個套件與那些類別有關,當然還需要輸入一些跟這個套件有關的說明

填寫完成後送出,會看到這個範本尚未發佈,點選[發佈]的按鈕,你的專案範本就會上架到Visual Studio Gallery

可以在Marketplace中看到了

建立專案範本在Visual Studio 2017中已經簡化了相當多的步驟,讓範本的建立越來越簡單容易,比起過去的版本來說,2017真的是非常的簡單。而共用開發範本上傳至Visual Studio Marketplace也很容易就可以完成建立並分享,對於讓企業內部進行統一開發範本加快開發速度與維護效益來說,建立範本並共用是一個很好的選擇

在軟體開發進步速度這麼快的時代,建立這樣的範本雖然能夠有效的加快應用程式的開發速度與縮減維護成本。
但若是企業太過依賴這種範本的建立與引用,也僅能將這樣的模式套用於固定開發規範的工作中,對於企業與個人能力的進步則無法提供任何幫助,須審慎使用