摘要:VS2005文件模板的定制
首先编写你的文件模板的原型:简单地说,新建的文件将是你提供文件的副本,当然你的文件中可以包含一些关键字,这些关键字或在使用模板生成新文件时被开发环境所替换。我们可以参考系统提供的模板中,winform窗体代码文件的内容:#region Using directives
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;
#endregion
namespace $rootnamespace${ partial class $safeitemrootname$: Form { public $safeitemrootname$() { InitializeComponent(); } }}
习惯使用标记的人一眼可以看出,$rootnamespace$和$safeitemrootname$就是刚才我提到的关键字,分别代表当前项目的缺省命名空间和用户提供的命名。 接着编写模板文件,模板文件是一个XML文件,后缀为.template,其格式可以参考开发环境提供的模板C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplates\CSharp\1033我没有找到好的文档描述文件格式,但我们可以照着开发环境提供的模板依葫芦画瓢,下面是系统模板文件<VSTemplate Version="1.1.0" Type="Item"> <TemplateData> <Name> <Package GUID="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="2237"/> </Name> <Description> <Package GUID="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="2264"/> </Description> <Icon> <Package GUID="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="4535"/> </Icon> <ProjectType> <Languages> <Language>CSharp</Language> </Languages> </ProjectType> <SortOrder>10</SortOrder> <DefaultName>Form.cs</DefaultName> </TemplateData> <TemplateContent> <References> <Reference> <Assembly>System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</Assembly> </Reference> <Reference> <Assembly>System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</Assembly> </Reference> <Reference> <Assembly>System.Drawing, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly> </Reference> <Reference> <Assembly>System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</Assembly> </Reference> <Reference> <Assembly>System.Xml, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</Assembly> </Reference> </References> <ProjectItem> <SourceFile>Form.cs</SourceFile> <ReplaceParameters>true</ReplaceParameters> <SubType>Form</SubType> </ProjectItem> <ProjectItem> <SourceFile>Form.Designer.cs</SourceFile> <ReplaceParameters>true</ReplaceParameters> </ProjectItem> </TemplateContent></VSTemplate>
首先,我们研究一下TemplateData节,包含nane,description,icon分别代表名字,描述和图标,在我们newItem的时候,他们显示在列表框中。那些GUID,ID我想它无非是去定位资源的位置而已。Icon我没有办法提供,名字和描述我可以直接写的。另外一个节点TemplateContent中描述的是模板需要的依赖和文件内容,可以包含多个文件,如Winform根据上面的分析,我们尝试书写模板如下:1,代码文件#该代码由大坏蛋的模板生成#region Using directivesusing System;using System.Text;using System.Windows.Forms;#endregion
namespace $rootnamespace${ class $safeitemrootname$: Control { public $safeitemrootname$() { } }}
2,模板文件<VSTemplate Type="Item" Version="1.1.1"> <TemplateData> <Name> <String>TestTemplate</String> </Name> <Description> <String>TestTemplate for joycode</String> </Description> <ProjectType> <Languages> <Language>CSharp</Language> </Languages> </ProjectType> <DefaultName>Test.cs</DefaultName> </TemplateData> <TemplateContent> <References> <Reference> <Assembly>System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</Assembly> </Reference> <Reference> <Assembly>System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</Assembly> </Reference> <Reference> <Assembly>System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</Assembly> </Reference> </References> <ProjectItem> <SourceFile>dhd.cs</SourceFile> <ReplaceParameters>true</ReplaceParameters> </ProjectItem> </TemplateContent></VSTemplate>
3,将这两个文件压缩成一个ZIP包,将该ZIP文件拷贝到C:\Documents and Settings\chenchangjian.H2000\My Documents\Visual Studio\ItemTemplates\Visual C#下,打开你的开发环境试试吧!注意:居然不支持中文!
...[
阅读全文]