我在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
}
非常感谢任何帮助。
答案 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;标签似乎只适用于顶级类别。