vs自定义模板,添加个人信息,如:创建者,创建时间等个性化信息(转自周公博客)

          首先打开【Visual Studio 2005】C:/Program Files/Microsoft Visual Studio 9.0/Common7/IDE

                【Visual Studio 2005】C:/Program Files/Microsoft Visual Studio 8/Common7/IDE),可以看到如下的情况:
 vs自定义模板,添加个人信息,如:创建者,创建时间等个性化信息(转自周公博客)_第1张图片
其中ItemTemplates文件中存放着我们向项目添加文件时的模板,ProjectTemplates文件夹顾名思义存放着我们创建项目的模板。这些文件夹中的模板分别会在我们创建文件或者项目时出现。,另外还有一个ProjectTemplatesCache和ItemTemplatesCache,这是vs使用的模板缓存。


 除了这些模板之外,Visual Studio在新建时还会搜索当前用户的个人模板,如果没有经过这种这样的特殊设置,路径为C:/Documents and Settings/用户名/My Documents/Visual Studio 2008/Templates,打开这个文件夹,我们看到如下情况:
vs自定义模板,添加个人信息,如:创建者,创建时间等个性化信息(转自周公博客)_第2张图片 
 在没有做任何配置的时候这两个文件夹都是空的,在此时如果我们向项目中添加文件会看到这样的情况,如下图:
vs自定义模板,添加个人信息,如:创建者,创建时间等个性化信息(转自周公博客)_第3张图片 
 从上图可以看出,我的模板是空的。


          OK,将C:/Program Files/Microsoft Visual Studio 9.0/Common7/IDE下的ItemTemplates和ProjectTemplates文件夹拷贝到了当前个人配置文件夹C:/Documents and Settings/用户名/My Documents/Visual Studio 2008/Templates下,可能系统会提示是否覆盖,点击确认之后我们再在任何项目中创建新文件会看到下面的情况,如下图所示:
vs自定义模板,添加个人信息,如:创建者,创建时间等个性化信息(转自周公博客)_第4张图片 


           如何改造:打开系统或个人配置的Templates/ItemTemplates/CSharp/Code/2052【1033表示英语。2052表示中文】,在这个文件夹下有许多zip文件,其中Class.zip、CodeFile.zip、Interface.zip和NETCFv2-Class.zip,分别对应的是添加类、代码文件、接口及.NET Compact Framework类的模板,在每个zip压缩包里都有一个.cs文件和一个.vstemplate文件。比如将Class.zip解压出来,这时的class.cs文件代码如下:

using System; using System.Collections.Generic; $if$ ($targetframeworkversion$ == 3.5)using System.Linq; $endif$using System.Text; namespace $rootnamespace$ { class $safeitemrootname$ { } }  
 将代码更改如下:

using System; using System.Collections.Generic; $if$ ($targetframeworkversion$ == 3.5)using System.Linq; $endif$using System.Text; namespace $rootnamespace$ { #region Version Info /* ======================================================================== * 【本类功能概述】 * * 作者:奔跑的蜗牛 * 时间:$time$ * 公司: $registeredorganization$ * CLR版本:$clrversion$ * QQ:454096521 * $safeitemrootname$说明:本代码版权归作者所有 * 唯一标识:$guid1$ * 修改说明: * ========================================================================= */ #endregion public class $safeitemrootname$ { $safeitemrootname$() { } } }  
 保存class.cs,然后利用压缩软件将class.cs和刚刚从Class.zip中解压出来Class.vstemplate文件压缩为Class.zip文件(注意一定要压缩成zip文件而不是rar或者其它格式文件,WinRAR提供这种功能),然后替换原来的Class.zip文件。
 好了,现在我们可以检验我们的成果了。随便打开一个项目,按照“添加”-“新建项”的步骤添加,在弹出的对话框中“我的模板”下选择“类”(因为我们刚刚改的就是我的模板中添加的类的模板),这时Visual Studio 2008按照模板生成的代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WCFClient { #region Version Info /* ======================================================================== * 【本类功能概述】 * * 作者:奔跑的蜗牛 * 时间:2010-6-20 9:39:04 * 公司: rysoft * CLR版本:2.0.50727.3603 * QQ:454096521 * Class1说明:本代码版权归作者所有 * 唯一标识:f7d4bfbe-accd-4d86-92b0-1407db886ae1 * 修改说明: * ========================================================================= */ #endregion public class Class1 { Class1() { } } }  
 
 
 在模板中我们可以使用“保留的模板参数”,亦可以使用自定义模板参数。
保留的模板参数有如下13个,其中GUID又可以变化出十个参数(模板参数区分大小写):
    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  当前的用户名。 
    year  以 YYYY 格式表示的当前年份。 
自定义模板参数:
    下面的示例演示如何在一个模板中使用多个自定义参数。如果项目或项是使用下面的自定义参数从某个模板创建而成,则将模板文件中 $color1$ 和 $color2$ 的所有实例分别替换为 Red 和 Blue。
    <CustomParameters>
        <CustomParameter Name="$color1$" Value="Red"/>
        <CustomParameter Name="$color2$" Value="Blue "/>
    </CustomParameters>

3.其它可用的参数:
    在.cs页面使用的模板参数:
    namespace $safeprojectname$
    public partial class $classname$ 或者
    public partial class $safeitemrootname$
    在.aspx页面使用的模板参数:
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="$fileinputname$.aspx.cs" Inherits="$rootnamespace$.$classname$" CodePage="936"%>
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InfoEdit.aspx.cs" Inherits="Examples.TableOp.InfoEdit" CodePage="936"%>
    在.vstemplate中使用的模板参数:
    <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.$fileinputextension$">Default.aspx</ProjectItem>
 
注:如果直接修改的系统模版而不是拷贝来的个人配置里的模版,修改后需在开始——》程序中Visual Studio Tools 下有Visual Studio 命题提示行工具,运行 devenv /setup进行修改模版的重新注册(1分钟左右),系统原始模版将丢失,需要事先备份对应的VS模版。

你可能感兴趣的:(vs自定义模板,添加个人信息,如:创建者,创建时间等个性化信息(转自周公博客))