2016-01-28 95 views
0

我在Visual Studio中为一个类创建了自定义项目模板。我已经完成了所有必需的步骤,并且可以将模板作为除“共享项目”类型之外的每个项目类型添加为新项目。添加新项目时,它不显示在选项列表中。我的目标是将此模板用于共享项目中的新类。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

我试图达到同样的效果,文档没有提供太多的帮助,但是检查了Shared项目中提供的一个已经提供的模板,发现它可以通过vstemplate中的<AppliesTo>元素完成。我不知道为什么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> 

希望这有助于。

0

在Visual Studio安装的模板中进行了深入研究之后,我发现要将模板添加到子类别(例如C#下的Shared Project)中,需要创建一个与子类别名称相同的文件夹该文件夹中的模板。

“AppliesTo”标签似乎只适用于顶级类别。

+0

可否请您分享您的解决方案如何做到这一点。 – PhuocLe