捕捉梦想

※H※L※

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  17 随笔 :: 0 文章 :: 236 评论 :: 10 Trackbacks

                                     如何将自己的代码自动添加版权信息的及其扩展

      前一段时间我发表了一篇"如何将自己的代码自动添加版权信息"的随笔,园子里的兄弟都强烈的支持,希望我能讲解更多更详细的参数,下面我就这些参数以及添加版权信息做一下总结. 

参数

描述

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//        created by 侯垒 at  $time$
22//        http://houleixx.cnblogs.com
23//
24//======================================================================
25
添加后的效果:(具体怎样添加参考"如何将自己的代码自动添加版权信息")
//======================================================================
//
//        Copyright (C) 2007-2008 三月软件工作室    
//        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
//
//        created by 侯垒 at  03/29/2008 11:06:58
//        http://houleixx.cnblogs.com
//
//======================================================================

这些信息可以自己创建根据自己需要来定义.
我就对模板的修改再做一下总结:
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提供)


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

对版权信息的一些反思:
我们不仅可以得用这种方法来添加版权信息,还可以添加一些项目中统一的规范,如命名空间之类的.可以节省很多的代码量,同时节省时间.
  

(作者:侯垒
posted on 2008-03-29 11:46 侯垒 阅读(2493) 评论(27)  编辑 收藏 所属分类: C#

评论

谢谢。收藏。
  回复  引用  查看    

#2楼 [楼主] 2008-03-29 12:01 侯垒      
@金色海洋(jyk)
客气,呵呵 :)

  回复  引用  查看    

#3楼  2008-03-29 12:03 stg609      
支持楼主!顶
  回复  引用  查看    

#4楼 [楼主] 2008-03-29 12:05 侯垒      
@stg609
谢谢支持.
  回复  引用  查看    

#5楼  2008-03-29 12:44 Kevin Li      
那些时间啊,组织啊 都是动态提取的信息? 在vs2008中也可这样用?

我给你发闪存消息和留言了
  回复  引用  查看    

#6楼 [楼主] 2008-03-29 12:53 侯垒      
@Kevin Li
是的,全是动态生成的.在VS2008下面我没有测试过(没有装vs2008),我想应该可以用的.你可以测试一下.
  回复  引用  查看    

#7楼 [楼主] 2008-03-29 12:57 侯垒      
@Kevin Li
你给我发留言了?我怎么没有收到呀?有什么问题你再发给我吧,或者是在这直接回复.
  回复  引用  查看    

#8楼  2008-03-29 13:41 高_超      
不错.深入研究vs.........
  回复  引用  查看    

#9楼  2008-03-29 14:24 stg609      
这种模板好像只能在添加项里面找到自己的模板,而新建项目的时候看不到自己的模板,这怎么解决呀?
  回复  引用  查看    

#10楼 [楼主] 2008-03-29 14:44 侯垒      
@stg609
是呀!这种只能在添加项的时候才会去调那些模板.至于新建项目的时候现在还不太清楚.
  回复  引用  查看    

#11楼  2008-03-29 16:54 Vincent Yang      
--引用--------------------------------------------------
侯垒: @stg609
是呀!这种只能在添加项的时候才会去调那些模板.至于新建项目的时候现在还不太清楚.
--------------------------------------------------------
ok,既然你在这里提到我了,我就在具体帮你解决一下上面那个朋友的问题吧。 项目模板英文叫Project Template。这里首先确定几点。第一你自己是否会创建Project Template?因为Project template并不是和Item template一样就一个文件那么简单。所以如果你自己如果手动能力不够强,我看基本就没戏了,如果你可以自己创建Project Template, ok,那么下一步就是找到相对的地方把你的Project Template放进去,然后可以显示出来。在原来的讨论里面我曾经说过,所有的自定义东西都在My document\VS 2008下面,如果仔细看去,不难发现其实Project Template的位置就在C:\Users\Username\Documents\Visual Studio 2008\My Exported Templates下,当你创建好Project Template之后,就把这个copy进去就可以了
  回复  引用  查看    

#12楼 [楼主] 2008-03-29 17:15 侯垒      
@Vincent Yang
呵呵,是呀!我也没有手动创建过Project template.以后还待研究.
谢谢,提供了答案.
  回复  引用  查看    

#13楼  2008-03-29 17:17 Vincent Yang      
@侯垒
我懒得再去写Blog了,如果你愿意,我可以把这个部分细节说一下,然后你添加在你的blog上。
  回复  引用  查看    

#14楼 [楼主] 2008-03-29 17:33 侯垒      
@Vincent Yang
好的呀!我很乐意.那就是ProjectTemplates里面的东西了.
  回复  引用  查看    

#15楼 [楼主] 2008-03-29 17:34 侯垒      
@stg609
可以用同样的方法去修改ProjectTemplates里面的东西.
  回复  引用  查看    

#16楼  2008-03-29 18:23 AndyFish      
看了这篇,也看了上一篇,只剩下一个“好”字,LZ辛苦了

Vincent Yang 牛人,国内开发的氛围和国外的还有很大的差别,还请牛人多多
辛苦,将日常中不经意却又无限创意的思路告诉大家
  回复  引用  查看    

#17楼  2008-03-29 20:58 stg609      
不错不错!嘿嘿!这样讨论,气氛真好!
  回复  引用  查看    

#18楼  2008-03-30 09:44 戏水      
此文为实现四个现代化做出了卓越贡献。
  回复  引用  查看    

#19楼  2008-03-30 13:51 任力      
我狂顶,你越来越牛了!哈哈。。
  回复  引用  查看    

#20楼 [楼主] 2008-03-30 16:44 侯垒      
@任力
谢谢,兄弟支持.哈哈.
  回复  引用  查看    

#21楼  2008-03-31 09:40 匿名 [未注册用户]
如果能做出个软件来修改就方便了。
  回复  引用    

#22楼  2008-03-31 17:41 airwolf2026      
呵呵.俺帮忙回答下上面有同学提到的2008是否可以使用的问题,是可以的哈.
  回复  引用  查看    

#23楼  2008-03-31 18:34 Vincent Yang      
--引用--------------------------------------------------
匿名: 如果能做出个软件来修改就方便了。
--------------------------------------------------------
稍后我会把如何制作写上
  回复  引用  查看    

#24楼 [楼主] 2008-03-31 18:39 侯垒      
@Vincent Yang
那好呀!那我只有期待了.
  回复  引用  查看    

#25楼  2008-04-01 11:12 Vincent Yang      
@侯垒
行了吧,满足了你的愿望。呵呵
http://www.cnblogs.com/javafun/archive/2008/04/01/1132391.html
  回复  引用  查看    

#26楼 [楼主] 2008-04-01 13:34 侯垒      
@Vincent Yang
呵呵,谢谢了.

  回复  引用  查看    

Powered by: houlei
QQ联系我