1
在Visual Studio 2005,2008和2010中,是否可以定義僅出現在特定ProjectFlavor項目的「添加項目」對話框中的項目模板?如果我能提供幫助,我寧願不要混淆所有其他無關項目的「添加項目」對話框。VSX:ProjectFlavor-only項目VSTemplates?
似乎<ProjectType>CSharp</ProjectType>
是一個固定的枚舉,我找不到ProjectFlavor GUID或其他任何地方。
我沒有看到其他產品顯示這種剋制的任何例子,但我想確保。
=====
OK,亞倫的技巧是非常有前景的,但我的第一次嘗試不成功。
在.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 { ... }
非常感謝Aaron,你可以在頂部查看額外的格式化內容以便跟進嗎? – 2010-02-10 19:21:10
嗨亞倫,有關這方面的進一步細節? – 2010-02-17 21:06:43
在上面當你說「在VSCT中」時,我假定你的意思是「在VSTemplate中」。 嘗試將LanguageVsTemplate =「CSharp」添加到屬性。 – 2010-02-18 18:56:18