2011-09-06 49 views
0

我们有一堆模板,添加使用“网络”模板的C#Web应用程序项目新项目(过滤时,其中有些是唯一可见组ID)。然而,我们的许多其他模板并不适合添加到Web项目中(它们旨在添加到标准的C#类库项目中)。我想在向C#Web应用程序项目添加新项目时阻止显示这些模板。创建不能在Web项目(仅在未调味的项目)出现VSTemplates

我不知道这是可以做到的。我知道反过来是可能的;创建项目模板,只 Web项目出现,但我想我们的一些模板,只显示在无味的C#项目( Web应用程序,WPF,工作流程等)。

我参加了在HKCU \软件\微软\ VisualStudio的\ 10.0Exp_Config \ {项目FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}(在未调味的C#项目类型注册)注册一看,我可以看到它没有指定任何基于模板组ID的过滤(所以这没有帮助,似乎)。调味的项目子类型(例如Workflow)似乎过滤了它们允许您添加的项目(例如,使用模板组标识“WorkflowItemTemplateGroupID”),但似乎没有风味的项目不会过滤它们的项目,因此任何项目将VisibleByDefault设置为“false”将始终不可见(因为它们无法指定模板组ID)。

有没有办法做我想要做什么?

回答

0

我想出如何使用做到这一点SVsRegisterNewDialogFilters service(这是缺少一块拼图)。

它使您能够提供一个实现IVsFilterAddProjectItemDlg实现,该实现在调用add-project-item对话框时调用(不管是谁调用它)。这就是所谓的以GUID为Web/Silverlight的项目比未调味的C#项目(这样我就可以简单地过滤掉我们的各种模板目录不同的项目类型。

相关问题