Visual studio 2012 VsTemplate:TemplateGroupID的用法

Visual studio 2012 VsTemplate:TemplateGroupID的用法,visual-studio-2012,vs-extensibility,visual-studio-templates,Visual Studio 2012,Vs Extensibility,Visual Studio Templates,无论我使用HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\Projects\中的哪个ID,它们都不起作用!当我将ShowByDefault设置为false时,“添加新项目”窗口中不会显示任何内容。 在我的示例中,我使用了SharePointItemTemplateGroupID,但Web也不起作用。我不知道我做错了什么 My*.vstemplate: <?xml version="1.0" encoding="utf-

无论我使用
HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\Projects\
中的哪个ID,它们都不起作用!当我将
ShowByDefault
设置为
false
时,“添加新项目”窗口中不会显示任何内容。 在我的示例中,我使用了
SharePointItemTemplateGroupID
,但
Web
也不起作用。我不知道我做错了什么

My*.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>My User Control</Name>
    <Description>My User Control with My-specific content.</Description>
    <Icon>MyUserControl.ico</Icon>
    <TemplateID>b83fe377-e03a-40a8-9366-a04988fae2a7</TemplateID>
    <ProjectType>CSharp</ProjectType>
    <SortOrder>1</SortOrder>
    <RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
    <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
    <DefaultName>MyUserControl.ascx</DefaultName>
    <TemplateGroupID>SharePointItemTemplateGroupID</TemplateGroupID>
    <ProjectSubType>SharePointItemTemplateGroupID</ProjectSubType>
    <ShowByDefault>true</ShowByDefault>
  </TemplateData>
  <TemplateContent>
    <References>
      <Reference>
        <Assembly>Microsoft.SharePoint</Assembly>
      </Reference>
      <Reference>
        <Assembly>System</Assembly>
      </Reference>
      <Reference>
        <Assembly>System.Web</Assembly>
      </Reference>
    </References>
    <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.$fileinputextension$">MyUserControl.ascx</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.$fileinputextension$.cs">MyUserControl.ascx.cs</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.$fileinputextension$.designer.cs">MyUserControl.ascx.designer.cs</ProjectItem>
    <CustomParameters>
      <CustomParameter Name="MappedFolderType" Value="UserControl" />
      <CustomParameter Name="$UC$" Value="UserControl" />
      <CustomParameter Name="$baseclass$" Value="UserControl"/>
    </CustomParameters>
  </TemplateContent>
  <WizardExtension>
    <Assembly>Microsoft.VisualStudio.SharePoint.ProjectExtensions.Wizards, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
    <FullClassName>Microsoft.VisualStudio.SharePoint.ProjectExtensions.Wizards.GenericMappedFolderWizard</FullClassName>
  </WizardExtension>
</VSTemplate>

我的用户控件
我的用户控件与我的特定内容。
MyUserControl.ico
b83fe377-e03a-40a8-9366-a04988fae2a7
CSharp
1.
2
1.
MyUserControl.ascx
SharePointItemTemplateGroupID
SharePointItemTemplateGroupID
真的
Microsoft.SharePoint
系统
系统.Web
MyUserControl.ascx
MyUserControl.ascx.cs
MyUserControl.ascx.designer.cs
Microsoft.VisualStudio.SharePoint.ProjectExtensions.Wizards,版本=11.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a
Microsoft.VisualStudio.SharePoint.ProjectExtensions.Wizards.GenericMappedFolderWizard

我不知道注册表项,但如果希望项目模板显示在“新建项目”对话框的某个文件夹中,请将其放置在文件系统上相应的文件夹中。例如,将压缩的模板文件放在此处:

C:\Users\\Documents\visualstudio 2012\Templates\ProjectTemplates\CSharp\SharePoint\

CSharp
文件夹是language文件夹,因此请替换
Visual Basic
或您需要的任何语言。此外,
SharePoint
文件夹在上述路径中不存在,因此您必须创建它。此文件夹的内容与安装的文件夹合并在:

\VisualStudioInstallationDirectory\Common7\IDE\ProjectTemplates\


请参阅。

这仍然很有用。。。我一直认为.vstemplate文件中的“ProjectSubType”属性可以帮助我将其显示在“添加新项”对话框中“Visual C#Items”下的现有类别下,例如“代码”-仍然不知道ProjectSubType的实际用途或显示位置,但您的回答帮助我获得了我想要显示的项目模板,谢谢!