為Visual Studio添加項目模板及項目範本

來源:互聯網
上載者:User
文章目錄
  • 1 問題的引入
  • 2 環境描述
  • 3知識準備
  • 4 添加各模板
  • 5 結束語
  • 6 參考資料
1 問題的引入

在做項目的時候,需要代碼規範,版本資訊不可或缺,但是每次在檔案頭COPY版本資訊很麻煩,而且也不太容易控制。為了更好、更規範的去完成項目,需對專案檔做統一的格式來處理。

2 環境描述

OS: WINDOWS 2003

開發環境:VS2008

語言:C#

架構:C/S B/S

3知識準備3.1 VS項目模板及項目範本位置

預設情況下,與產品一起安裝的模板位於以下位置:

  • /Common7/IDE/ItemTemplates/語言/地區設定/
  • /Common7/IDE/ProjectTemplates/語言/地區設定/

(此處為微軟提供位置,實際處理中與此資訊有所出入,具體位置見下文)

3.2 VS模板介紹

一個模板的例子:

 

<VSTemplate Type="Project" Version="2.0.0"

    xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">

    <TemplateData>

        <Name>My template</Name>

        <Description>A basic starter kit</Description>

        <Icon>TemplateIcon.ico</Icon>

        <ProjectType>CSharp</ProjectType>

    </TemplateData>

    <TemplateContent>

        <Project File="MyStarterKit.csproj">

            <ProjectItem>Form1.cs<ProjectItem>

            <ProjectItem>Form1.Designer.cs</ProjectItem>

            <ProjectItem>Program.cs</ProjectItem>

            <ProjectItem>Properties/AssemblyInfo.cs</ProjectItem>

            <ProjectItem>Properties/Resources.resx</ProjectItem>

            <ProjectItem>Properties/Resources.Designer.cs</ProjectItem>

            <ProjectItem>Properties/Settings.settings</ProjectItem>

            <ProjectItem>Properties/Settings.Designer.cs</ProjectItem>

        </Project>

    </TemplateContent>

</VSTemplate>

 

 

3.2.1 VSTemplate元素

VSTemplate 元素是 .vstemplate 檔案的根項目,其屬性如下:

 

屬性

說明

Type

將模板標識為項目模板或項目範本。此屬性的值可以為 ProjectItem

Version

指定模板的版本號碼。Visual Studio 2005 中的模板的 Version 屬性值為 2.0.0

 

 

子項目

 

元素

說明

TemplateData

必選元素。指定將此模板分類的資料,並定義此模板在“建立項目”或“添加新項”對話方塊中的顯示方式。

TemplateContent

必選元素。指定模板的內容。

WizardExtension

可選的元素

WizardData

可選的元素

 

3.2.2 模板參數

所有模板都支援在對模板進行執行個體化時進行參數替換,以替換關鍵參數,如類名和命名空間。當使用者在“建立項目”或“添加新項”對話方塊中單擊“確定”時,這些參數將由後台啟動並執行模板嚮導替換。

模板參數以 $參數$ 格式進行聲明。如:$safeprojectname$。

模板的保留參數如下表:

 

參數

說明

clrversion

公用語言運行庫 (CLR) 的目前的版本。

GUID [1-10]

用於替換專案檔中的項目 GUID 的 GUID。最多可以指定 10 個唯一的 GUID(例如,guid1))。

itemname

使用者在添加新項對話方塊中提供的名稱。

machinename

當前的電腦名稱(例如,Computer01)

projectname

使用者在建立項目對話方塊中提供的名稱。

 

registeredorganization

HKLM/Software/Microsoft/Windows NT/CurrentVersion/RegisteredOrganization 中的登錄機碼值

rootnamespace

當前項目的根命名空間。此參數用於替換正向項目中添加的項中的命名空間

safeitemname

使用者在“添加新項”對話方塊中提供的名稱,名稱中移除了所有不安全的字元和空格

safeprojectname

使用者在“建立項目”對話方塊中提供的名稱,名稱中移除了所有不安全的字元和空格。

time

以 DD/MM/YYYY 00:00:00 格式表示的目前時間

userdomain

當前的使用者域

username

當前的使用者名稱

webnamespace

當前網站的名稱。在 Web Form模板中使用此參數以確保類名稱是唯一的。如果網站位於 Web 服務器的根目錄下,則此模板參數將解析為 Web 服務器的根目錄

year

以 YYYY 格式表示的當前年份

 

4 添加各模板

上面的一些知識點可能會有些淩亂,但都是在後文中會用到的,所以上面的要瞭解下。

添加模板分為兩類,一類是建立項目時的項目模板,一類是在項目中添加新項時的項目範本。其步驟如下:

● 製作模板

● 將模板COPY到指定位置

● 重設VS環境

4.1 添加項目模板

此處將以做一個C/S的WINFORM模板來說明添加一個模板的操作方法,其他項目模板類似,只有路徑上有所不同,路徑不同的會給出相關路徑。

4.1.1 製作模板

MICRO提供了製作模板的方法,http://msdn.microsoft.com/zh-cn/library/xkh1wxd8.aspx,但我在操作時沒有按照這樣的方法來處理,我的作法是將已有的模板COPY出來,修改,放到新的檔案夾,步驟如下:

● 將/Common7/IDE/ProjectTemplates/CSharp/Windows/2052下的WindowsApplication.zip檔案COPY出來。

● 解壓,1

 

 

圖1 windowsApplication.zip

● 修改form1,修改前2,修改後3,注意圖中紅色的位置即3.2.2中提到的模板參數

 

 

圖2 form1.cs修改前

 

 

圖3 form1.cs修改後

● 同樣修改Program.CS,assemblyinfo.cs檔案

● 修改csWindowsApplication.vstemplate,4

 

 

圖4 csWindowsApplication.vstemplate

● 修改windowsapplication.csproj,因為我修改了program.c的檔案名稱,才需修改此檔案,如無修改檔案名稱則不需修改此檔案。

● 將所有檔案壓縮為WindowsApplication.zip,注意壓縮時不能加檔案夾,5

 

 

圖5 壓縮檔

至此,WINFORM的項目模板已做好。

4.1.2 將模板COPY到指定位置

我的做法是將/Common7/IDE/ProjectTemplates/CSharp/Windows下的所有內容COPY到一個新的檔案夾,如 COMP WINDOWS,刪除COMP WINDOWS/2052下的所有內容,將上文產生的模板放在2052目錄下,將COMP WINDOWS COPY到/Common7/IDE/ProjectTemplates/CSharp/

4.1.3 重設VS環境

開啟Visual Studio 2008 命令列工具,執行devenv /setup,其路徑如:

 

 

圖6:VISUAL STUDIO 2008工具開啟檔案

你可以通過這樣的方法根據需要做自己的模板(WINFORM程式)。看一下效果:開啟VS,建立、建立項目,出現如:

 

 

圖7:最終效果

4.1.4 添加B/S項目模板

上文是添加C/S項目模板的方法,添加B/S項目模板的方法與其類似,有區別的地方在於COPY模板的地方,B/S將產生的模板直接COPY到 /Common7/IDE/ProjectTemplates/CSharp/Web/2052即可,注意要將壓縮檔改名,以免覆蓋原有的檔案。

4.2 添加項目範本

製作過程與4.1同,要注意的地方是項目範本的位置。

C/S項目範本的位置:/Common7/IDE/ItemTemplates/CSharp/Code/2052 類模板位置;/Common7/IDE/ItemTemplates/CSharp/Windows Forms/2052 表單模板位置

B/S模板位置:/Common7/IDE/ItemTemplates/Web/CSharp/2052,包括類、ASP表單、WEB服務、使用者控制項等均在此處。

COPY的方式同4.1.4

最終的:

 

 

圖8:添加新項

 

 

圖9:新加類的

5 結束語

至此,所有的添加工作完成,VS模板可以自訂參數,但由於在此處沒有太大的用處,故未使用。

值得注意的地方為:

● 要注意壓縮為ZIP。

● 如果是英文版的話,要將文中的2502目錄改為1033。(此條未測試,是我估計的)

6 參考資料

 

名稱

出處

建立項目模板

http://msdn.microsoft.com/zh-cn/library/xkh1wxd8.aspx

手動建立項目模板

http://msdn.microsoft.com/zh-cn/library/ms185291.aspx

替換模板中的參數

http://msdn.microsoft.com/zh-cn/library/ms185311.aspx

尋找和組織項目模板和項目範本

http://msdn.microsoft.com/zh-cn/library/y3kkate1.aspx

VSTemplate 元素(Visual Studio 模板)

http://msdn.microsoft.com/zh-cn/library/31cdwx28%28VS.80%29.aspx

模板參數

http://msdn.microsoft.com/zh-cn/library/eehb4faa.aspx

向模板傳遞自訂參數

http://msdn.microsoft.com/zh-cn/library/ms247063.aspx

 

 

   作者:xzavier
出處:http://blog.csdn.net/qiaozhiwei
本文著作權歸作者和CSDN共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.