现在的位置: 首页 > 综合 > 正文

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

2013年01月03日 ⁄ 综合 ⁄ 共 4643字 ⁄ 字号 评论关闭

来自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模板不一定见到效果,所以建议两个都修改了以后,就立竿见影了,哈哈~

抱歉!评论已关闭.