Visual Studio中共享项目的项模板

时间:2016-01-28 15:08:34

标签: c# visual-studio templates visual-studio-2015

我在Visual Studio中为一个类创建了一个自定义项模板。我已经完成了所有必需的步骤,并且模板可以作为新项目添加到每个项目类型中,除了"共享项目"类型。添加新项目时,它不会显示在选项列表中。我的目标是将此模板用于共享项目中的新类。

这是我模板的.xml文件......

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
  <TemplateData>
    <DefaultName>Class_ODBC.cs</DefaultName>
    <Name>Class_ODBC</Name>
    <Description>Template for a class using ODBC and System.Data</Description>
    <ProjectType>CSharp</ProjectType>
    <SortOrder>10</SortOrder>
    <Icon>__TemplateIcon.ico</Icon>
    <TemplateGroupID>WinRT-Managed</TemplateGroupID>
  </TemplateData>
  <TemplateContent>
    <References />
    <ProjectItem SubType="" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">Class_ODBC.cs</ProjectItem>
  </TemplateContent>
</VSTemplate>

模板本身的.cs文件......

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Odbc;
using System.Text;

namespace %rootnamespace%
{
    class %safeitemname%
    {
    #region Fields

    #endregion
    #region Constructors

    #endregion
    #region Methods

    #endregion
    #region Events/Handlers

    #endregion
    #region Properties

    #endregion
    }
#region Exceptions

#endregion
}

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我试图实现同样的目标,文档没有提供太多帮助,但检查了共享项目中可用的已提供模板之一,发现可以通过<AppliesTo>元素完成在vstemplate中。我不确定为什么VS会将标记突出显示为模式不正确,因为MSDN明确指出它有效

最终结果如下所示

<?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>Custom ViewModel</Name>
    <Description>Custom ViewModel</Description>
    <Icon>MyViewModelTemplate.ico</Icon>
    <TemplateID>6dde10d5-17ae-4cf1-9880-dc448eca638d</TemplateID>
    <TemplateGroupID>WinRT-Managed</TemplateGroupID>
    <AppliesTo>CSharp</AppliesTo>
    <ProjectType>CSharp</ProjectType>
    <SortOrder>1</SortOrder>
    <RequiredFrameworkVersion>4.5</RequiredFrameworkVersion>
    <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
    <DefaultName>ViewModel.cs</DefaultName>
    <TargetPlatformName>Windows</TargetPlatformName>
    <RequiredPlatformVersion>8</RequiredPlatformVersion>
  </TemplateData>
  <TemplateContent>
    <ProjectItem SubType="Code"  TargetFileName="$fileinputname$.cs" ReplaceParameters="true">Class.cs</ProjectItem>
  </TemplateContent>
</VSTemplate>

希望这会有所帮助。

答案 1 :(得分:0)

在Visual Studio的已安装模板中进行挖掘后,我发现要将模板添加到子类别(例如C#下的共享项目),需要创建一个与子目录同名的文件夹类别并将模板放在该文件夹中。

&#34; AppliesTo&#34;标签似乎只适用于顶级类别。