• VS2010 如何制作项目模板


    模板的制作

    在vs2010中制作模板文件非常简单,直接点击菜单中的文件à保存为模板,就可以另存为工程模板或是项目模板了。保存选项里可以选择模板的图标。

    做好的模板需要放到下面这两个目录中:

    C:\Documents and Settings\wz\My Documents\Visual Studio 2010\Templates\ProjectTemplates

    C:\Documents and Settings\wz\My Documents\Visual Studio 2010\Templates\ItemTemplates

    然后新建一个工程,你就发现这些模板已经可以用了。

    模板中参数使用注意事项:

    1,对于工程模板

    由于牵涉到程序集的一些信息,比如公司信息,guid等,需要用模板变量来替换,不然每次生成的工程都一样了。AssemblyInfo.cs文件需要做如下的修改:

    [assembly: AssemblyTitle("$safeprojectname$")]
    [assembly: AssemblyDescription("")]
    [assembly: AssemblyConfiguration("")]
    [assembly: AssemblyCompany("$registeredorganization$")]
    [assembly: AssemblyProduct("$safeprojectname$")]
    [assembly: AssemblyCopyright("Copyright (C) $registeredorganization$ $year$")]
    [assembly: AssemblyTrademark("")]
    [assembly: AssemblyCulture("")]
    [assembly: Guid("$guid1$")]

    项目中的类使用的命名空间要用$safeprojectname$:

    namespace $safeprojectname$
    {
    }

    2,对于项目模板

    这里已经罗列出了所有的保留模板参数,这些参数对于工程模板是一样的,唯一有点区别的是:$rootnamespace$仅在项目模板中有效,而$projectname$在工程模板才有效的。

    项目模板中的namespace要用$rootnamespace$

    namespace $rootnamespace$
    {
        /// <summary>
        /// clrversion:$clrversion$
        /// Guid:$guid1$
        /// itemname:$itemname$
        /// machinename:$machinename$
        /// projectname:$projectname$
        /// registeredorganization:$registeredorganization$
        /// safeprojectname:$safeprojectname$
        /// time:$time$
        /// userdomain:$userdomain$
        /// username:$username$
        /// webnamespace:$webnamespace$
        /// year:$year$
        /// </summary>
        public class $safeitemname$ : BaseLibrary
        {
        }
    }

    带safe开头的几个变量去掉了不安全字符和空格。

    添加一个项目后的效果:

    namespace CMM.UserKanriApi.ClientTier.BusinessLogic
    {
        /// <summary>
        /// clrversion:4.0.30319.269
        /// Guid: 5c7655a2-5413-4031-98fb-b52c8e1a52a0
        /// itemname:GetSemmeiBusinessLogic
        /// machinename:ss-pc
        /// projectname:$projectname$
        /// registeredorganization:sk
        /// safeprojectname:$safeprojectname$
        /// time:2012/09/11 14:51:28
        /// userdomain: ss-pc
        /// username:wz
        /// webnamespace:$webnamespace$
        /// year:2012
        /// </summary>
        public class GetSemmeiBusinessLogic : BaseLibrary
        {
        }
    }

    用上面这些保留参数基本上就可以满足我们的要求了。如果需要一些更复杂的配置,可以修模板的MyTemplate.vstemplate文件。如添加自定义参数(摘自MSDN):

    <TemplateContent>
        ...
        <CustomParameters>
            <CustomParameter Name="$MyParameter1$" Value="MyValue2"/>
            <CustomParameter Name="$MyParameter2$" Value="MyValue2"/>
        </CustomParameters>
    </TemplateContent>

    在模板的一个或多个代码文件中使用该参数。 例如:

    string Value1 = "$MyParameter1"
    string Value2 = "$MyParameter2"

    3,对于webservice类型的模板,要再次编辑模板文件。

    webservice类型的文件包含一个xxx.asmx,这个文件默认是不进行参数替换的,造成每次加入一个模板文件,修改了类名,但是这个文件里对应的类名没有随着变化。造成程序错误,对应方法可以手动修改这个文件,但最好的方式是建模板文件的时候从新修改一下模板,就可以解决这个问题,具体修改方法如下:

    打开MyTemplate.vstemplate这个文件,

    1,对于xxx.asmx文件,ReplaceParameters改为true,加入OpenInEditor="false" 

    2,对于xxx.asmx.cs文件,加入OpenInEditor="true"。

      <TemplateContent>
        <References />
        <ProjectItem OpenInEditor="false" SubType="" TargetFileName="$fileinputname$.asmx" ReplaceParameters="true">WebService_t.asmx</ProjectItem>
        <ProjectItem OpenInEditor="true" SubType="Code" TargetFileName="$fileinputname$.asmx.cs" ReplaceParameters="true">WebService_t.asmx.cs</ProjectItem>
      </TemplateContent>

    3,修改xxx.asmx文件内容为:

    <%@ WebService Language="C#" CodeBehind="$fileinputname$.asmx.cs" Class="$rootnamespace$.$safeitemname$" %>

    4,重新打包上诉的几个文件成zip文件。收工。

  • 相关阅读:
    JavaScript(16):横版菜单栏
    JavaScript(15):表格行之增删改
    JavaScript(14):实现jQuery的click绑定及链式编程
    c++ -- 左值和右值
    c++--模板与泛型编程
    python--导入其他文件夹下的模块(.py文件)
    python--pickle序列化(持久化)
    python--matplotlib显示中文问题(四种方法)
    machine learning--L1 ,L2 norm
    python--'__main__'的作用
  • 原文地址:https://www.cnblogs.com/xiashengwang/p/2680383.html
Copyright © 2020-2023  润新知