Visual Studio 2008的自定义模板
拿CSharp的WindowsApplication为例子
找到文件夹
X:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplatesCache\CSharp\Windows\2052\WindowsApplication.zip
注意:这个文件夹是Cache,只是临时给我们看看效果而已,要完全改变,需要将
X:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\
中的对应压缩文件里的文件修改掉
文件夹下有10个文件
资源文件Resources.Designer.cs、Resources.resx
设置文件Settings.Designer.cs、Settings.settings
这里面的东西我觉得没什么可改的,所以就不管这四个文件咯
assemblyinfo.cs文件里的是项目属性里的一些内容
form1.cs、form1.designer.cs、Program.cs三文件为WINFORM的主要程序
前两个是默认FORM的程序文件和视图文件,第三个是程序的入口
csWindowsApplication.vstemplate是该代码生成的一个管理文件
我们先要知道的是几个模板参数
详细的可以参考MSDN
VS自带的主要有这几个
clrversion 公共语言运行库 (CLR) 的当前版本。
GUID [1-10] 用于替换项目文件中的项目 GUID 的 GUID。最多可以指定 10 个唯一的 GUID(例如,guid1))。
itemname 用户在添加新项对话框中提供的名称。
machinename 当前的计算机名称(例如,Computer01)。
projectname 用户在新建项目对话框中提供的名称。
registeredorganization HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization 中的注册表项值。
rootnamespace 当前项目的根命名空间。此参数用于替换正向项目中添加的项中的命名空间。
safeitemname 用户在“添加新项”对话框中提供的名称,名称中移除了所有不安全的字符和空格。
safeprojectname 用户在“新建项目”对话框中提供的名称,名称中移除了所有不安全的字符和空格。
time 以 DD/MM/YYYY 00:00:00 格式表示的当前时间。
userdomain 当前的用户域。
username 当前的用户名。
year 以 YYYY 格式表示的当前年份。
格式是$parameter$ 比如 $year$
其实打开这个文件夹里的文件就能看到类似的代码
到时候这些代码就会替换成对应的内容
当然也可以自定义
在csWindowsApplication.vstemplate文件里的<TemplateContent>里加入<CustomParameters>
<TemplateContent>
<CustomParameters>
<CustomParameter Name="$MyParameter1$" Value="MyValue2"/>
</CustomParameters>
</TemplateContent>
Name就是之后使用的名字,Value是内容,调用方法还是一样的
这个在我的自定义模板里是没多大意义的
因为我期望的是可以根据某一个值来动态更新某一段内容
而这样定义参数,值还是写死的,只是方便调用而已
和我的需求不符合,大家有需要的自己去用用把
我的模板里没多少东西,没必要设置自定义变量
继续来改模板
首先先讲下我想的模板,我期望的模板是可以根据某一个值来实现两套模板的切换
(一套是公司的信息模板,一套是自己的信息模板)
实现方法是通过输入的内容
(其实在建立项目的时候,我们只输入了一个内容,就是项目名称,所以只能在项目名称上判断才能让当前模板根据我的需求来动态生成)
比如我新建工程的时候输入项目名称 TEMP:COMPANY
在模板代码里通过$safeitemname$获取到我输入的内容
然后通过“:”(随便用什么隔开都可以)分离出后面的内容
前面的内容用<CustomParameters>保存起来,用来作为模板的项目名称
后面的内容就是你所使用的模板
在代码里是可以通过 $if$ $endif$ 来使用条件语句的
我大概看了下MSDN上的介绍,如果要实现我期望的模式,需要通过继承VS提供的接口,写成DLL
让VS去调用,这就有点太浪费时间了
所以我还是决定就做一套公司的信息模板就行了,不想时间在这上面,说不定什么时候有这心情,写一个工具来专门完成这个功能
很好,我发现我的事儿里又多了一件,还是排队排着把,等哪天我心血来潮的时候再说
现在来完成我自定义的模板
我先介绍下我的模板
我建立一个工程,我希望工程建好后自动生成的窗体文件的文件名是和工程名一样的
也许是我用eClipse后养成的习惯,我觉得VS自动生成一个FORM1的东西实在太随意了
实在让我很不喜欢
所以首先就想把这名字改掉
然后就是一些细小的习惯,我的习惯是会给主窗体创建一个LOAD和CLOSED事件
然后就是一些必要的版本注释
有这三个基本够了把
先第一个:改名字
我直接使用输入的工程名字作为默认窗体的名字$safeitemname$
首先在form1.cs、form1.designer.cs、Program.cs三个文件里修改内容
form1.cs里的类名,以及构造函数的名字
form1.designer.cs里的类名
都改成$safeitemname$
Program.cs里的
Application.Run(new Form1());
改成
Application.Run(new $safeitemname$());
这样文件建生成出来之后,内容就是你输入的工程名了
然后把配置文件修改一下
csWindowsApplication.vstemplate文件里的
<ProjectItem TargetFileName="$safeprojectname$.cs" ReplaceParameters="true" OpenInEditor="true">
Form1.cs
</ProjectItem>
<ProjectItem TargetFileName="$safeprojectname$.Designer.cs" ReplaceParameters="true">
Form1.Designer.cs
</ProjectItem>
很好理解,XML的内容是原文件名,就是之前修改的文件的名字
如果要使用自定义的文件,就在这个结点的值改下名字就可以了
然后是里面的属性,ReplaceParameters="true" 很好理解,就是替换参数,
它告诉生成器,这个文件里的内容需要替换模板参数
OpenInEditor="true"这个是说生成后默认打开哪个文件
TargetFileName="$safeprojectname$.cs"这个是表示替换的文件名字(可以有相对路径)
这里改好之后保存,新建个工程试试
出错了把~
还有个文件没修改~
用记事本或者什么打开工程文件windowsapplication.csproj
在<ItemGroup>里面把所有看到Form1的都改成$safeprojectname$
其实就是以下几句
<Compile Include="$safeprojectname$.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="$safeprojectname$.Designer.cs">
<DependentUpon>$safeprojectname$.cs</DependentUpon>
</Compile>
看的出来把~这个是工程里的各个文件之间的结构
第一个任务完成了
后两个就很简单了
加入事件到窗体里
打开form1.designer.cs
在InitializeComponent()函数里追加两句代码
this.Load += new System.EventHandler(this.FormLoadEvent);
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormClosingEvent);
括号里的是函数名,可以自己定义
之前我说要建个CLOSED的函数,不过我后来想了想
我用的比较多的还是CLOSING事件,所以这里加的是关闭时事件
之后再在form1.cs里加入对应的函数
private void FormLoadEvent(object sender, EventArgs e)
{
}
private void FormClosingEvent(object sender, FormClosingEventArgs e)
{
}
注意参数类型
同样方法可以建立随意的事件~
第三部分是加注释了
其实就是就是用模板参数写一些注释内容而已
我拿我的为例子把
////////////////////////////////////////////////////////////
// $safeprojectname$
// Create on: $time$
// Original author: $username$
// Email: $MyEmail$
// Copyright: Copyright ? $registeredorganization$ $year$
// Description:
// Modify:
////////////////////////////////////////////////////////////
我把这个放在form1.cs的最上面
里面的$MyEmail$是我自定义的变量~
然后你新建立一个C#的Window Application工程,你就会发现一些变化了
完成咯~~
但是最后还没完类
别忘了我们是改了CACHE文件,我们需要改变实质的压缩文件
所以我们把这几个文件所在的文件夹压缩成WindowsApplication.zip
然后把这个我文件放到
X:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Windows\2052
这里有个WindowsApplication.zip文件
把这里已经存在的文件备份,然后把我们压缩的文件拷贝到这里
然后大功告成~
新建个工程试试
其他项目和程序的都是一样的~
对自己的DIY的项目满意不?
试试把网站地址也加入到里面去把~~
要加入可以点击跳转的网页地址才算成功~
我看看有没地方上传附件,把我的WindowsApplication.zip提供出来大家参考参考
没有合适的资源?快使用搜索试试~ 我知道了~
VS2008自定义模板教程
共12个文件
jpg:9个
zip:1个
db:1个
3星 · 超过75%的资源 需积分: 10 113 下载量 59 浏览量
2009-01-20
16:49:02
上传
评论
收藏 545KB RAR 举报
温馨提示
制作VS2008自定义模板教程 http://blog.csdn.net/dancindream/archive/2009/01/20/3839717.aspx
资源推荐
资源详情
资源评论
收起资源包目录
VSTemplates.rar (12个子文件)
VSTemplates
02.jpg 77KB
01.jpg 41KB
03.jpg 102KB
04.jpg 30KB
07.jpg 53KB
09.jpg 119KB
Thumbs.db 28KB
VS模板.txt 7KB
05.jpg 66KB
WindowsApplication.zip 8KB
06.jpg 65KB
08.jpg 76KB
共 12 条
- 1
资源评论
- yyy200092013-11-10新手,前来学习
- myfirststep2012-11-18最近用到VS2008,想了解一下他的具体使用,就学习了
- gynchb4562012-11-13本人新手,前来学习
dancindream
- 粉丝: 2
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功