繁体   English   中英

单击菜单添加项目时,如何根据特定模板添加项目?

[英]How to add an item based on a specific template when click on menu Add item?

例如,我想创建一个模板(在文件夹中创建一个文件夹,用文件夹的名称创建 1 个类和 1 个接口),它将通过右键单击项目和菜单中的方式创建,它将出现 CreateTamplateClass

我可以使用 c# WinForms/Console Application 等来实现吗?

TNX

具有带参数替换的文件夹的 Visual Studio 多文件项模板

您可以创建C# 项模板项目或自己手动创建项模板 zip 文件。

项目模板 zip 文件应包含以下文件:

  • Class.cs
  • Interface.cs
  • MyItemTemplate.vstemplate

然后您需要将 zip 文件复制到以下文件夹:

  • %USERPROFILE%\\Documents\\Visual Studio 2017\\Templates\\ItemTemplates\\Visual C#

然后打开一个新的 Visual Studio 实例并创建/打开一个 C# 项目,然后打开添加新项目窗口并从Visual C# 项目中选择MyItemTemplate并指定一个名称,例如MyItem1 ,然后将创建以下结构:

具有文件夹的 Visual Studio 多文件项模板

以下是 zip 文件中模板文件的内容:

类.cs

using System;
using System.Collections.Generic;

namespace $rootnamespace$.$basename$
{
    class $safeitemrootname$: I$safeitemrootname$
    {
    }
}

接口.cs

using System;
using System.Collections.Generic;

namespace $rootnamespace$.$basename$
{
    interface $safeitemrootname$
    {
    }
}

MyItemTemplate.vstemplate

<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010">
  <TemplateData>
    <Name>MyItemTemplate</Name>
    <Description>My multi-file item template</Description>
    <Icon>MyItemTemplate.ico</Icon>
    <TemplateID>52ae3bdb-7fde-4d47-8a4b-d17d0c9269f7</TemplateID>
    <ProjectType>CSharp</ProjectType>
    <DefaultName>MyItem.cs</DefaultName>
  </TemplateData>
  <TemplateContent>
    <References>
      <Reference>
        <Assembly>System</Assembly>
      </Reference>
    </References>
    <ProjectItem TargetFileName="$fileinputname$\I$fileinputname$.cs" ReplaceParameters="true">Interface.cs</ProjectItem>
    <ProjectItem TargetFileName="$fileinputname$\$fileinputname$.cs" ReplaceParameters="true">Class.cs</ProjectItem>
    <CustomParameters>
      <CustomParameter Name="$basename$" Value="$fileinputname$"/>
    </CustomParameters>    
  </TemplateContent>
</VSTemplate>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM