代码加咖啡的生活

专门讨论.NET相关技术--大坏蛋
随笔 - 29, 评论 - 253, 引用 - 67

导航

关于


标签

每月存档

最新留言

广告

 

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 directives
using 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#下,打开你的开发环境试试吧!
注意:居然不支持中文!

 

打印 | 张贴于 2005-01-27 17:05:00 | Tag:暂无标签

留言反馈

#回复: 如何在VS中定制文件模板 编辑
我想更多的人关心的是 $rootnamespace$ 还能有哪些参数?请教一下。
2007-11-21 10:07:00 | [匿名:OSCARXIAO]
#re:如何在VS中定制文件模板 编辑
如何在VS中定制文件模板ooeess
2005-06-16 21:55:00 | [匿名:一氧化碳测定仪]
#re:如何在VS中定制文件模板 编辑
如何在VS中定制文件模板ooeess
2005-06-16 21:55:00 | [匿名:测汞]
#re:如何在VS中定制文件模板 编辑
^_~,pretty good!csharpsseeoo
2005-05-18 20:07:00 | [匿名:光谱仪]
#re:如何在VS中定制文件模板 编辑
^_^,Pretty Good!
2005-04-16 07:22:00 | [匿名:转速表]
#re:如何在VS中定制文件模板 编辑
^_^,Pretty Good!
2005-04-10 20:21:00 | [匿名:试验机万能试验机]
#re: 如何在VS中定制项目或文件模板 编辑
好象排版有问题呀。
2005-01-27 17:24:00 | [匿名:开心就好]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.2.0