• 为Visual Studio添加项目模板及项模板 【转】


    1 问题的引入

    在做项目的时候,需要代码规范,版本信息不可或缺,但是每次在文件头COPY版本信息很麻烦,而且也不太容易控制。为了更好、更规范的去完成项目,需对项目文件做统一的格式来处理。

    2 环境描述

    OS: WINDOWS 2003

    开发环境:VS2008

    语言:C#

    架构:C/S B/S

    3知识准备

    3.1 VS项目模板及项模板位置

    默认情况下,与产品一起安装的模板位于以下位置:

    • /Common7/IDE/ItemTemplates/语言/区域设置/
    • /Common7/IDE/ProjectTemplates/语言/区域设置/

    (此处为微软提供位置,实际处理中与此信息有所出入,具体位置见下文)

    3.2 VS模板介绍

    一个模板的例子:

    <VSTemplate Type="Project" Version="2.0.0"

        xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">

        <TemplateData>

            <Name>My template</Name>

            <Description>A basic starter kit</Description>

            <Icon>TemplateIcon.ico</Icon>

            <ProjectType>CSharp</ProjectType>

        </TemplateData>

        <TemplateContent>

            <Project File="MyStarterKit.csproj">

                <ProjectItem>Form1.cs<ProjectItem>

                <ProjectItem>Form1.Designer.cs</ProjectItem>

                <ProjectItem>Program.cs</ProjectItem>

                <ProjectItem>Properties/AssemblyInfo.cs</ProjectItem>

                <ProjectItem>Properties/Resources.resx</ProjectItem>

                <ProjectItem>Properties/Resources.Designer.cs</ProjectItem>

                <ProjectItem>Properties/Settings.settings</ProjectItem>

                <ProjectItem>Properties/Settings.Designer.cs</ProjectItem>

            </Project>

        </TemplateContent>

    </VSTemplate>

    3.2.1 VSTemplate元素

    VSTemplate 元素是 .vstemplate 文件的根元素,其属性如下:

    属性

    说明

    Type

    将模板标识为项目模板或项模板。此属性的值可以为 ProjectItem

    Version

    指定模板的版本号。Visual Studio 2005 中的模板的 Version 属性值为 2.0.0

    子元素

    元素

    说明

    TemplateData

    必选元素。指定将此模板分类的数据,并定义此模板在“新建项目”或“添加新项”对话框中的显示方式。

    TemplateContent

    必选元素。指定模板的内容。

    WizardExtension

    可选的元素

    WizardData

    可选的元素

    3.2.2 模板参数

    所有模板都支持在对模板进行实例化时进行参数替换,以替换关键参数,如类名和命名空间。当用户在“新建项目”或“添加新项”对话框中单击“确定”时,这些参数将由后台运行的模板向导替换。

    模板参数以 $参数$ 格式进行声明。如:$safeprojectname$。

    模板的保留参数如下表:

    参数

    说明

    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

    当前的用户名

    webnamespace

    当前网站的名称。在 Web 窗体模板中使用此参数以确保类名称是唯一的。如果网站位于 Web 服务器的根目录下,则此模板参数将解析为 Web 服务器的根目录

    year

    以 YYYY 格式表示的当前年份

    4 添加各模板

    上面的一些知识点可能会有些凌乱,但都是在后文中会用到的,所以上面的要了解下。

    添加模板分为两类,一类是新建项目时的项目模板,一类是在项目中添加新项时的项模板。其步骤如下:

    ● 制作模板

    ● 将模板COPY到指定位置

    ● 重设VS环境

    4.1 添加项目模板

    此处将以做一个C/S的WINFORM模板来说明添加一个模板的操作方法,其他项目模板类似,只有路径上有所不同,路径不同的会给出相关路径。

    4.1.1 制作模板

    MICRO提供了制作模板的方法,http://msdn.microsoft.com/zh-cn/library/xkh1wxd8.aspx,但我在操作时没有按照这样的方法来处理,我的作法是将已有的模板COPY出来,修改,放到新的文件夹,步骤如下:

    ● 将/Common7/IDE/ProjectTemplates/CSharp/Windows/2052下的WindowsApplication.zip文件COPY出来。

    ● 解压,如图1

    图1 windowsApplication.zip

    ● 修改form1,修改前如图2,修改后如图3,注意图中红色的位置即3.2.2中提到的模板参数

    图2 form1.cs修改前

    图3 form1.cs修改后

    ● 同样修改Program.CS,assemblyinfo.cs文件

    ● 修改csWindowsApplication.vstemplate,如图4

    图4 csWindowsApplication.vstemplate

    ● 修改windowsapplication.csproj,因为我修改了program.c的文件名,才需修改此文件,如无修改文件名则不需修改此文件。

    ● 将所有文件压缩为WindowsApplication.zip,注意压缩时不能加文件夹,如图5

    图5 压缩文件示意图

    至此,WINFORM的项目模板已做好。

    4.1.2 将模板COPY到指定位置

    我的做法是将/Common7/IDE/ProjectTemplates/CSharp/Windows下的所有内容COPY到一个新的文件夹,如 COMP WINDOWS,删除COMP WINDOWS/2052下的所有内容,将上文生成的模板放在2052目录下,将COMP WINDOWS COPY到/Common7/IDE/ProjectTemplates/CSharp/

    4.1.3 重设VS环境

    打开Visual Studio 2008 命令行工具,执行devenv /setup,其路径如下图:

    图6:VISUAL STUDIO 2008工具打开方式

    你可以通过这样的方法根据需要做自己的模板(WINFORM程序)。看一下效果:打开VS,新建、新建项目,出现如下图:

    图7:最终效果

    4.1.4 添加B/S项目模板

    上文是添加C/S项目模板的方法,添加B/S项目模板的方法与其类似,有区别的地方在于COPY模板的地方,B/S将生成的模板直接COPY到 /Common7/IDE/ProjectTemplates/CSharp/Web/2052即可,注意要将压缩文件改名,以免覆盖原有的文件。

    4.2 添加项模板

    制作过程与4.1同,要注意的地方是项模板的位置。

    C/S项模板的位置:/Common7/IDE/ItemTemplates/CSharp/Code/2052 类模板位置;/Common7/IDE/ItemTemplates/CSharp/Windows Forms/2052 窗体模板位置

    B/S模板位置:/Common7/IDE/ItemTemplates/Web/CSharp/2052,包括类、ASP窗体、WEB服务、用户控件等均在此处。

    COPY的方式同4.1.4

    最终的效果图:

    图8:添加新项效果图

    图9:新加类的效果图

    5 结束语

    至此,所有的添加工作完成,VS模板可以自定义参数,但由于在此处没有太大的用处,故未使用。

    值得注意的地方为:

    ● 要注意压缩为ZIP。

    ● 如果是英文版的话,要将文中的2502目录改为1033。(此条未测试,是我估计的)

    6 参考资料

    名称

    出处

    创建项目模板

    http://msdn.microsoft.com/zh-cn/library/xkh1wxd8.aspx

    手动创建项目模板

    http://msdn.microsoft.com/zh-cn/library/ms185291.aspx

    替换模板中的参数

    http://msdn.microsoft.com/zh-cn/library/ms185311.aspx

    查找和组织项目模板和项模板

    http://msdn.microsoft.com/zh-cn/library/y3kkate1.aspx

    VSTemplate 元素(Visual Studio 模板)

    http://msdn.microsoft.com/zh-cn/library/31cdwx28%28VS.80%29.aspx

    模板参数

    http://msdn.microsoft.com/zh-cn/library/eehb4faa.aspx

    向模板传递自定义参数

    http://msdn.microsoft.com/zh-cn/library/ms247063.aspx

     
     
    作者:xzavier
    出处:http://blog.csdn.net/qiaozhiwei
    本文版权归作者和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    静态类和静态类成员(C# 编程指南)
    sealed(C# 参考)
    C#高级知识点概要(2)
    线程并发和异步
    CXF+Spring+Hibernate实现RESTful webservice服务端实例
    Spring Boot 实现RESTful webservice服务端实例
    Spring Boot 实现RESTful webservice服务端示例
    Spring Boot REST API 自动化测试
    Biee插入图形时报错-超过了已配置的已允许输出提示, 区域, 行或列的最大数目
    BIEE安装一直卡在最后一步解决办法
  • 原文地址:https://www.cnblogs.com/yongtaiyu/p/2604198.html
Copyright © 2020-2023  润新知