将自己的代码自动添加版权信息

来自Asp.net精英论坛:bbs.1aspx.com 

原文地址:http://www.efreer.cn/post/e5b086e887aae5b7b1e79a84e4bba3e7a081e887aae58aa8e6b7bbe58aa0e78988e69d83e4bfa1e681af.aspx
      现在大多数公司都规定程序员在程序文件的头部加上版权信息,这样每个人写的文件都可以区分开来,如果某个文件出现问题就可以快速的找到文件的创建人,用最短的时间来解决问题,常常是以下格式:

// ======================================================================
//
//          Copyright (C) 2007-200 8    
//          All rights reserved
//
//          filename :Class4
//          description :
//
//          created by efreer at   03/09/2008 18:41:28
//         http://hi.baidu.com/chinadaima
//
// ======================================================================
     有些人使用Copy和Paste的方式,这样即浪费时间,效果又不是很好,就说上面的时间你就无法去Paste,哈哈,下面我就教大家怎样去添加这些信息,使我们的代码更有个性.
1.在visual studio 2005的安装路径下
        如:[盘符]:/Program files/Microsoft Visual Studio 8/Common7/IDE/ItemTemplatesCache
2.找到文件夹如图所示:
       
里面可以为各种语言进行修改.如果对WinForm中的类进行修改可以打开/CSharp/2052/Class.zip.其中/CSharp/2052/包括了所有WinForm文件类型的模板.
打开Class.zip里面有一个Class.cs文件,我们对其进行修改,当我们在WinForm中添加类文件的时候,类文件就会自动添加上我们的信息.
如下:

$rootnamespace$为生成类的命名空间的名字,$safeitemrootname$为生成类的类名.
可以看到我们在版权信息中加入了$time$,它就可以直接给我们加入创建的时间.我们可以对/CSharp/2052中所有的模板进行修改,切忌不要轻易修改系统那些代码,以免影响我们的正常的使用.
对于做Web开发的人员来说可以在ItemTemplatesCache/Web/CSharp/2052里进行修改.
新建一个类文件就可以实现了插入我们自定义的版权信息.
// ======================================================================
//
//          Copyright (C) 2007-2008 e-freer
//          All rights reserved
//
//          filename :NewClass
//          description :
//
//          created by e-freer at   03/09/2008 20:31:56
//        http://hi.baidu.com/chinadaima
//
// ======================================================================
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/**/ /// <summary>
/// NewClass 的摘要说明
/// </summary>
public class NewClass
{
    
public NewClass()
    
{
        
//
        
// TODO: 在此处添加构造函数逻辑
        
//
     }
}

参数

描述

clrversion

当前系统CLR版本号

GUID [1-10]

生成全局唯一标识符,可以生成10 (例如:guid1)

itemname

打开添加新建项时输入的文件名称

machinename

当前机器的名称(:pc1)

registeredorganization

注册的组织名

rootnamespace

命名空间名

safeitemname

保存的文件名

time

当前系统时间,格式:DD/MM/YYYY 00:00:00.

userdomain

用户所在的域

username

当前系统用户名

year

当前系统时间 YYYY.

上面提供了部分的参数 (希望有人继续补充),已经经本人在VS2005下测试,可以通过.演示结果如下:
参数信息:
1 // ======================================================================
2 //
3 //          Copyright (C) 2007-2008 4 //          All rights reserved
5 //          guid1:   $guid1$
6 //          guid2:   $guid2$
7 //          guid3:   $guid3$
8 //          guid4:   $guid4$
9 //          guid5:   $guid5$
10 //          CLR版本:           $clrversion$
11 //          新建项输入的名称: $itemname$
12 //          机器名称:            $machinename$
13 //          注册组织名:         $registeredorganization$
14 //          命名空间名称:       $rootnamespace$
15 //          文件名:              $safeitemname$
16 //          当前系统时间:      $time$
17 //          用户所在的域:      $userdomain$
18 //          当前登录用户名:    $username$
19 //          创建年份:           $year$
20 //
21 //         23 //
24 // ======================================================================
25
添加后的效果:(具体怎样添加参考" 如何将自己的代码自动添加版权信息")
// ======================================================================
//
//          
//          All rights reserved
//          guid1:   0a3c2c25-ce8f-4e8d-9a02-291bacb5d278
//          guid2:   b50a2fd2-7a9c-4af0-8a8a-26e2f2c5c770
//          guid3:   4186fb52-22ef-4be7-bec4-388b1e479624
//          guid4:   8f76ffc6-206b-480e-a5b1-c95e02f0d630
//          guid5:   5266c864-2d1e-400a-bf98-5fc687e6c889
//          CLR版本:           2.0.50727.42
//          新建项输入的名称: test
//          机器名称:          PC5
//          注册组织名:        houlei
//          命名空间名称:      ConsoleApplication1
//          文件名:            test
//          当前系统时间:      03/29/2008 11:06:58
//          用户所在的域:      houlei
//          当前登录用户名:    Administrator
//          创建年份:          2008
//
//        
//
// ======================================================================

这些信息可以自己创建根据自己需要来定义.
我就对模板的修改再做一下总结:
1.我上次提到修改ItemTemplatesCache里面的模板,它只是修改缓存的模板,执行devenv /setup 重新配置VS,这些模板会自动变回原来的模板.我们的这些模板信息就会丢失.
2.对于这种模板丢失的现象,我们可以直接修改ItemTemplates中的模板,ItemTemplates里面是一些压缩的模板并且是只读的,我们可以尽管修改.对于缓存的模板在每执行devenv /setup 重新配置VS的时候也是从ItemTemplates中解压出来的.这样在重新配置VS的时候就不会出现丢失现象了.
3.以上的方法存在一个弊端就是我们破解了系统的那些模板信息,这些系统模板在某个时候我们还可能用到.下面就有一种更好的方法来解决上述问题.
也就是说有没有一种方法在我们添加新项的时候供我们选择一下,我们可以在系统模板和自己定义的模板之间作出选择.请看下文.
我们把那些在Common7/IDE/ItemTemplates/CSharp/2052下面的压缩文件复制到C:/Documents and Settings/用户名/My Documents/Visual Studio 2005/Templates/ItemTemplates/Visual C#(或者是web版)中去,再对其进行修改.当我们再添加新项的时候,那些模板就出现在"我的模板"下面了. 如果在另外一台机器上写代码,只需要把这些模板放到用户自己的文件夹就可以了,也很方便携带.(这种方法由Vincent Yang提供)


从我上篇文章的评论中可以看出还有很好很好的方法,在这就不再一一举出.可以自己在如何将自己的代码自动添加版权信息的评论中寻找.找出自己喜欢的添加方式.

对版权信息的一些反思:
我们不仅可以得用这种方法来添加版权信息,还可以添加一些项目中统一的规范,如命名空间之类的.可以节省很多的代码量,同时节省时间.
   ps 有时候直接改cahe模板不一定见到效果,所以建议两个都修改了以后,就立竿见影了,哈哈~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值