代码之家  ›  专栏  ›  技术社区  ›  Jason Kleban

VSX:ProjectFlavor-only项VSTemplates?

  •  1
  • Jason Kleban  · 技术社区  · 16 年前

    在VisualStudio2005、2008和2010中,是否可以为特定ProjectFlavor的项目定义仅出现在“添加项”对话框中的项模板?如果我能帮忙的话,我宁愿不要把所有其他无关项目的additems对话框弄得乱七八糟。

    <ProjectType>CSharp</ProjectType> 是一个固定枚举,我找不到ProjectFlavor guid或其他位置。

    =====

    <TemplateData>
        <Name>MyProject A File</Name>
        <Description>MyProject A File to do stuff</Description>
        <Icon>A.ico</Icon>
        <TemplateID>TemplateID_A</TemplateID>
        <TemplateGroupID>MyTemplateGroupID</TemplateGroupID>
        <ProjectType>CSharp</ProjectType>
        <RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
        <SortOrder>20</SortOrder>
        <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
        <DefaultName>Template_A.cs</DefaultName>
        <ProvideDefaultName>true</ProvideDefaultName>
        <ShowByDefault>false</ShowByDefault>
    </TemplateData>
    <TemplateContent>
        <ProjectItem ReplaceParameters="true">Template_A.cs</ProjectItem>
    </TemplateContent>
    

    在package.cs上:

    // [ProvideProjectItem(typeof(MyProjectFactory), "MyTemplateGroupID", 
    //    @"Templates\ProjectItems", 600)] // Took this out.
    
    [ProvideProjectFactory(typeof(MyProjectFactory), 
        "My Project", "My Project Files (*.csproj);*.csproj", 
        null, null, @"Templates\Projects", 
        LanguageVsTemplate = "CSharp", 
        NewProjectRequireNewFolderVsTemplate = true, 
        TemplateGroupIDsVsTemplate="MyTemplateGroupID",
        TemplateIDsVsTemplate = "TemplateID_A,TemplateID_B")]
    public sealed class MyPackage : Package { ... }
    
    1 回复  |  直到 16 年前
        1
  •  3
  •   Aaron Marten    16 年前

    诀窍是指定相同的 TemplateGroupID 在每个vstemplate文件中,然后在项目的注册中指定相同的TemplateGroupID。

    推荐文章