让Visual Studio 自动添加头部注释信息

       在日常的开发过程中我们经常需要为我们的类文件添加注释和版权等信息,以前都是将信息文本复制、粘贴,要是添加一两个个还好,要是添加很多就显得很麻烦了。为了减少这种重复性的工作,有没有好的解决办法呢?答案是肯定的,其实我们每次添加的文件都是按照类库模板自动生成的,所以只需要修改Visual Studio的类库模板就可以了。

        首先找到Visual Studio(2005、2008、2010) 的安装路径下\Common7\IDE\ItemTemplatesCache\CSharp\目录,面有好多目录,Windows Forms是开发Windows Forms程序的模版目录,Web是Web项目文件的模版目录,其他的同理。进入Web目录有选择2052目录(2052是中文地区的代号)下,会看到好多带有.zip的目录,比如要修改web页面的模版,就修改\WebForm.zip\Default.aspx.cs,打开Default.aspx.cs会看到如下内容。

  1. using System;  
  2. using System.Collections.Generic;  
  3. $if$ ($targetframeworkversion$ == 3.5)using System.Linq;  
  4. $endif$using System.Web;  
  5. using System.Web.UI;  
  6. using System.Web.UI.WebControls;  
  7. namespace $rootnamespace$  
  8. {  
  9. public partial class $classname$ : System.Web.UI.Page  
  10.     {  
  11. protected void Page_Load(object sender, EventArgs e)  
  12.         {  
  13.         }  
  14.     }  

代码中的"$"符号之间的字符是模版的变量,具体变量含义请参照:

  1. <strong>time$ 日期  
  2. $year$ 年份  
  3. $clrversion$ CLR版本  
  4. $GUID$ 用于替换项目文件中的项目 GUID 的 GUID。最多可以指定 10 个唯一的 GUID(例如,guid1))。  
  5. $itemname$ 用户在对话框中提供的名称。  
  6. $machinename$ 当前的计算机名称(例如,Computer01)。  
  7. $projectname$ 用户在对话框中提供的名称。  
  8. $registeredorganization$ HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization 中的注册表项值。  
  9. $rootnamespace$ 当前项目的根命名空间。此参数用于替换正向项目中添加的项中的命名空间。  
  10. $safeitemname$ 用户在“添加新项”对话框中提供的名称,名称中移除了所有不安全的字符和空格。  
  11. $safeprojectname$ 用户在“新建项目”对话框中提供的名称,名称中移除了所有不安全的字符和空格。  
  12. $time$ 以 DD/MM/YYYY 00:00:00 格式表示的当前时间。  
  13. $userdomain$ 当前的用户域。  
  14. $username$ 当前的用户名。  
  15. </strong>

我的一个注释示例:

  1. /************************************************************************  
  2. * 项目名称 :  工作日志系统   
  3. * 项目描述 :       
  4. * 类 名 称 :  UserInfo     
  5. * 版 本 号 :  v1.0.0.0   
  6. * 说    明 :  用户信息管理类     
  7. * 作    者 :  灵雨飘零   
  8. * 创建时间 :  2011/12/15 13:19:28  
  9. * 更新时间 :  2011/12/15 13:19:28  
  10. ************************************************************************  
  11. * Copyright @ 灵雨工作室 2011 . All rights reserved.  
  12. ************************************************************************/ 

按照上面的实例设计模板:

  1. /************************************************************************
  2. * 项目名称 :  $rootnamespace$  
  3. * 项目描述 :     
  4. * 类 名 称 :  $safeitemrootname$
  5. * 版 本 号 :  v1.0.0.0 
  6. * 说    明 :     
  7. * 作    者 :  $username$
  8. * 创建时间 :  $time$
  9. * 更新时间 :  $time$
  10. ************************************************************************
  11. * Copyright @ 灵雨工作室 $year$. All rights reserved.
  12. ************************************************************************/
  1. <pre class="csharp" name="code">using System;  
  2. using System.Collections.Generic;  
  3. $if$ ($targetframeworkversion$ == 3.5)using System.Linq;  
  4. $endif$using System.Web;  
  5. using System.Web.UI;  
  6. using System.Web.UI.WebControls;  
  7. namespace $rootnamespace$  
  8. {  
  9. public partial class $classname$ : System.Web.UI.Page  
  10.     {  
  11. protected void Page_Load(object sender, EventArgs e)  
  12.         {  
  13.         }  
  14.     }  
  15. }  
  16. </pre>  
  17. <pre></pre>  
  18. <p><br>  
  19. 生成的文件:<br>  
  20. </p>  
  21. <pre class="csharp" name="code">/************************************************************************
  22. * 项目名称 :  工作日志系统  
  23. * 项目描述 :     
  24. * 类 名 称 :  Default2
  25. * 版 本 号 :  v1.0.0.0 
  26. * 说    明 :     
  27. * 作    者 :  灵雨飘零
  28. * 创建时间 :  2012-5-12 14:26:49
  29. * 更新时间 :  2012-5-12 14:26:49
  30. ************************************************************************
  31. * Copyright @ 灵雨工作室 2012. All rights reserved.
  32. ************************************************************************/
  33. using System;  
  34. using System.Collections.Generic;  
  35. using System.Linq;  
  36. using System.Web;  
  37. using System.Web.UI;  
  38. using System.Web.UI.WebControls;  
  39. public partial class Default2 : System.Web.UI.Page  
  40. {  
  41. protected void Page_Load(object sender, EventArgs e)  
  42.     {  
  43.     }  
  44. }  
  45. </pre>  
  46. <p> </p>  
  47. <p>修改其他的模板按照以上修改方法即可,此处不再详述。</p>  
  48. <p><br>  
  49. </p> 
posted @ 2014-12-01 13:24  hornet_team  阅读(225)  评论(0编辑  收藏  举报