类模板 文件的修改,以前也修改过,这次有个同事问我,搞了有一会才搞定,这里还是记录分享下。
如果想在每次创建文件时,自动生成文档注释(注意是自动生成文档注释而不是帮助文档),如下面的代码,需要设置VS的模板,新创建的cs类文件会根据模板的样子进行生成。常用的VS文件模板有3个,分别是Class.zip、Interface.zip、From.zip.
这里以Class.zip模板设置为例,模板在vs2010下的路径
C:Program Files (x86)Microsoft Visual Studio 10.0Common7IDEItemTemplatesCacheCSharpCode2052Class.zip 这个文件夹
打开后找到里面的Class.cs文件,将其内容改作
using System; using System.Collections.Generic; $if$ ($targetframeworkversion$ >= 3.5)using System.Linq; $endif$using System.Text; /* ============================================================================== * 当前网站:$webnamespace$ * 功能描述:$safeitemrootname$ * 创 建 者:$username$ * 创建日期:$time$ * * * 修改者: 修改时间: 修改说明: * ==============================================================================*/ namespace $rootnamespace$ { class $safeitemrootname$ { } }
保存,重启vs就可以了。
这样说明下,我在这次修改的时候发现的问题。
第一个问题是:
C:Program Files (x86)Microsoft Visual Studio 10.0Common7IDEItemTemplatesCacheCSharpCode2052Class.zip 这个路径下面的Class.cs文件是针对常用的类文件的修改,比如在类库中,winform中等创建的,如果我们要在webfrom,mvc等这些项目里面也达到这个效果,还要修改其他的 类模板 文件。
我们打开,C:Program Files (x86)Microsoft Visual Studio 10.0Common7IDEItemTemplatesCache ,然后搜索Class.cs文件
可以看到一个有4个类模板文件:
第一个应用于类库中,winform
第二个应用于Silverlight 项目中
第三个应用于MVC项目中
第四个应用于WebFrom项目中
如果需要,可以把刚刚的那段 注释 加到这个类模板中去
第二个问题是:
除了以上的方法外,还可以修改
C:Program FilesMicrosoft Visual Studio 10.0Common7IDEItemTemplatesCSharpCode2052Class.zip
然后以管理员的身份运行打开vs2010命令窗口执行 “devenv /InstallVsTemplates”。等待一小会儿,重启VS2010
这里的 ItemTemplates与ItemTemplatesCache的区别在于,如果你设置了ItemTemplates下的模板,需要在VS命令行中运行devenv /InstallVsTemplates 命令 ,以Itemtemplates模板生成ItemTemplatesCache的模板,也就是说ItemTemplatesCache模板的设置会被原始的Itemtemplates模板还原。所以最好不要轻易改变Itemtemplates模板下的内容(他不能还原)。
对于这个方式,我在修改ItemTemplates下面的模板,重新生成后发现ItemTemplatesCache下面的Class模板为空,尝试了很多次都是这样,最后只能去别人的电脑里找到之前ItemTemplates里面的模板还原回去才行。。。具体什么原因也还不清楚。所以,用第二种方式的最好请先备份一下。不然很蛋疼。。。
最后附上类模板中的变量参数:
模板参数说明
模板参数说明:
Parameter |
说明 | |
---|---|---|
clrversion |
公共语言运行时 (CLR) 的当前版本。 |
|
GUID [1-10] |
用于替换项目文件中的项目 GUID 的 GUID。 guid1))。 |
|
itemname |
用户在添加新项对话框中提供的名称。 |
|
machinename |
当前的计算机名称(例如,Computer01)。 |
|
projectname |
用户在新建项目对话框中提供的名称。 |
|
registeredorganization |
HKLMSoftwareMicrosoftWindows NTCurrentVersionRegisteredOrganization 中的注册表项值。 |
|
rootnamespace |
当前项目的根命名空间。 此参数用于仅在要添加到项目中的项中替换命名空间。 |
|
safeitemname |
用户在“添加新项”对话框中提供的名称,名称中移除了所有不安全的字符和空格。 |
|
safeprojectname |
用户在“新建项目”对话框中提供的名称,名称中移除了所有不安全的字符和空格 | |
time |
以 DD/MM/YYYY 00:00:00 格式表示的当前时间 | |
userdomain |
当前的用户域。 |
|
username |
当前的用户名。 |
|
webnamespace |
当前网站的名称。 在 Web 窗体模板中使用此参数以确保类名称是唯一的。 如果网站位于 Web 服务器的根目录下,则此模板参数将解析为 Web 服务器的根目录。 |
|
year |
以 YYYY 格式表示的当前年份。 |