2010-02-10 2 views
1

Visual Studio 2005, 2008 및 2010에서는 특정 ProjectFlavor 프로젝트의 항목 추가 대화 상자에만 나타나는 항목 템플릿을 정의 할 수 있습니까? 다른 관련이없는 프로젝트의 '항목 추가'대화 상자를 혼란스럽게하지 말고 도움을 청합니다.VSX : ProjectFlavor-only 항목 VSTemplates?

<ProjectType>CSharp</ProjectType>은 고정 된 열거 형이며 ProjectFlavor guid 또는 기타 장소를 찾을 수 없습니다.

이러한 제한을 나타내는 다른 제품의 예는 보이지 않지만 꼭 확인하고 싶습니다.

=====

확인, 아론의 끝은 매우 유망하지만 내 첫 번째 시도는 실패합니다. .vstemplate에서

:

<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 { ... } 

답변

3

예이 가능하며 이렇게 "상자에"몇 가지 항목 템플릿이 있습니다. 예를 들어, WPF 항목 (페이지, 창, FlowDocument 등)에 대한 C# 또는 VB 항목 템플릿은 WPF- 풍미 프로젝트로 작업하는 경우에만 나타납니다.

트릭은 각 Vstemplate 파일에 동일한 TemplateGroupID을 지정하고 프로젝트 풍미의 등록에이 동일한 TemplateGroupID를 지정하는 것입니다.

+0

감사합니다. Aaron, 추가 구성 서식 파일을 확인하여 후속 조치를 취할 수 있습니까? –

+0

안녕하세요 애론, 이것에 대한 자세한 내용은? –

+0

위의 경우에서 "In the VSCT"라고 말하면 "In VSTemplate"을 의미한다고 가정합니다. LanguageVsTemplate = "CSharp"를 속성에 추가해보십시오. –