В Visual Studio 2005, 2008 и 2010, возможно ли определить шаблон элемента, который появляется только в диалоговом окне «Добавить элемент» для проектов конкретного ProjectFlavor? Я бы предпочел не загромождать все другие диалоговые окна «Добавить элементы», если я могу помочь.VSX: ProjectFlavor-only item 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 { ... }
Спасибо Аарон, можете ли вы, пожалуйста, проверить дополнительные форматированные материалы наверху для последующей работы? –
Привет, Аарон, какие-либо подробности об этом? –
В приведенном выше, когда вы говорите «В VSCT», я предполагаю, что вы имели в виду «В VSTemplate». Попробуйте добавить к атрибуту LanguageVsTemplate = "CSharp". –