来自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个 |
itemname |
打开添加新建项时输入的文件名称 |
machinename |
当前机器的名称(如:pc1) |
registeredorganization |
注册的组织名 |
rootnamespace |
命名空间名 |
safeitemname |
保存的文件名 |
time |
当前系统时间,格式:DD/MM/YYYY |
userdomain |
用户所在的域 |
username |
当前系统用户名 |
year |
当前系统时间 YYYY. |
上面提供了部分的参数(希望有人继续补充),已经经本人在VS2005下测试,可以通过.演示结果如下:
参数信息:
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模板不一定见到效果,所以建议两个都修改了以后,就立竿见影了,哈哈~