• Visual Studio 项目模板制作(一)


    我们编写项目的时候,很多时候都是在写重复代码,比如一个比较完整的框架,然后下面有很多代码都是重复的Copy,其实我们可以利用Visual Studio的模板替我们干这些活,我们只要关注项目具体的业务就可以了;

    下面我们开始:

    1、模板类别

    项目模板、项模板

    其中,项目模板是创建项目用的,项模板是创建项用的

    项目模板:

    项模板:

    下面我们创建项目模板

    首先,将要制作成模板的项目打开,选中项目,点击文件-》导出项目模板,弹出导出模板向导

    然后填写相关信息,点击完成,这样就导出模板成功了

    现在,很关键的一步就是修改导出的模板

    解压刚才导出zip文件

    打开.vstemplate文件

    <VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
      <TemplateData>
        <Name>ConsoleApplication2</Name>
        <Description>&lt;没有可用的说明&gt;</Description>
        <ProjectType>CSharp</ProjectType>
        <ProjectSubType>
        </ProjectSubType>
        <SortOrder>1000</SortOrder>
        <CreateNewFolder>true</CreateNewFolder>
        <DefaultName>ConsoleApplication2</DefaultName>
        <ProvideDefaultName>true</ProvideDefaultName>
        <LocationField>Enabled</LocationField>
        <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
        <Icon>__TemplateIcon.ico</Icon>
      </TemplateData>
      <TemplateContent>
        <Project TargetFileName="ConsoleApplication2.csproj" File="ConsoleApplication2.csproj" ReplaceParameters="true">
          <ProjectItem ReplaceParameters="true" TargetFileName="CodeTimer.cs">CodeTimer.cs</ProjectItem>
          <ProjectItem ReplaceParameters="true" TargetFileName="Program.cs">Program.cs</ProjectItem>
          <Folder Name="Properties" TargetFolderName="Properties">
            <ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
          </Folder>
        </Project>
      </TemplateContent>
    </VSTemplate>

    TemplateData节点是模板的说明,Name:模板名称,Description:模板描述,ProjectType:项目类型,

    修改TemplateContext节点

    TargetFileName:模板生成的文件名称 (如:TargetFileName="$safeprojectname$.csproj")

    File:模板文件

    ReplaceParameters:是否替换占位符,微软定义的占位符见附录,当然还可以自定义占位符

    修改完成之后

    <VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
      <TemplateData>
        <Name>ConsoleApplication2</Name>
        <Description>&lt;没有可用的说明&gt;</Description>
        <ProjectType>CSharp</ProjectType>
        <ProjectSubType>
        </ProjectSubType>
        <SortOrder>1000</SortOrder>
        <CreateNewFolder>true</CreateNewFolder>
        <DefaultName>ConsoleApplication2</DefaultName>
        <ProvideDefaultName>true</ProvideDefaultName>
        <LocationField>Enabled</LocationField>
        <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
        <Icon>__TemplateIcon.ico</Icon>
      </TemplateData>
      <TemplateContent>
        <Project TargetFileName="$safeprojectname$.csproj" File="ConsoleApplication2.csproj" ReplaceParameters="true">
          <ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$CodeTimer.cs">CodeTimer.cs</ProjectItem>
          <ProjectItem ReplaceParameters="true" TargetFileName="Program.cs">Program.cs</ProjectItem>
          <Folder Name="Properties" TargetFolderName="Properties">
            <ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
          </Folder>
        </Project>
      </TemplateContent>
    </VSTemplate>

    打开用记事本csproj项目文件

    修改ItemGroup

      <ItemGroup>
        <Compile Include="$safeprojectname$CodeTimer.cs" />
        <Compile Include="Program.cs" />
        <Compile Include="PropertiesAssemblyInfo.cs" />
      </ItemGroup>

    修改完成之后压缩成Zip文件,放到下面的目录,在vs里面就可以使用刚才创建的模板了

    (vs安装位置)Visual Studio 2013TemplatesProjectTemplates

     

    附录:

    参数

    描述

    clrversion

    公共语言运行时 (CLR) 的当前版本。

    GUID [1-10]

    用于替换项目文件中的项目 GUID 的 GUID。 最多可以指定 10 个唯一的 GUID(例如,guid1))。

    itemname

    用户在添加新项对话框中提供的名称。

    machinename

    当前的计算机名称(例如,Computer01)。

    projectname

    用户在新建项目对话框中提供的名称。

    registeredorganization

    HKLMSoftwareMicrosoftWindows NTCurrentVersionRegisteredOrganization 中的注册表项值。

    rootnamespace

    当前项目的根命名空间。 此参数仅适用于项目模板。

    safeitemname

    用户在“添加新项”对话框中提供的名称,名称中移除了所有不安全的字符和空格。

    safeprojectname

    用户在“新建项目”对话框中提供的名称,名称中移除了所有不安全的字符和空格。

    time

    以 DD/MM/YYYY 00:00:00 格式表示的当前时间。

    SpecificSolutionName

    解决方案的名称。 当“创建解决方案的目录”被选中,SpecificSolutionName 具有解决方案的名称。当“创建解决方案的目录”没有被选中,SpecificSolutionName是空。

    userdomain

    当前的用户域。

    username

    当前的用户名。

    webnamespace

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

    year

    以 YYYY 格式表示的当前年份。

  • 相关阅读:
    中国一些web service收藏
    DataSet 和 List<T> 相互 转换
    JS图表
    IIS DirectoryEntry
    JS弹框
    Remoting
    Del SVN Configuare File BAT
    Viewport3D对象转换成图片
    在WPF中进行碰撞检测
    Button自定义样式
  • 原文地址:https://www.cnblogs.com/idefav2010/p/4786715.html
Copyright © 2020-2023  润新知