簡體   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