2011-09-06 3 views
0

C# 웹 응용 프로그램 프로젝트에 새 항목을 추가 할 때만 볼 수있는 템플릿이 있습니다 ("Web"템플릿을 사용하여 필터링 됨 그룹 ID). 그러나 다른 많은 템플릿은 웹 프로젝트에 추가하는 것이 적절하지 않습니다.이 템플릿은 표준 C# 클래스 라이브러리 프로젝트에 추가하기위한 것입니다. C# 웹 응용 프로그램 프로젝트에 새 항목을 추가 할 때 이러한 템플릿이 표시되지 않도록하고 싶습니다.웹 프로젝트 아래에 표시되지 않는 VSTemplates 만들기 (불투명 프로젝트에만 적용)

이것이 가능한지 확실하지 않습니다. 나는 그 역이 가능하다는 것을 안다; 만 웹 프로젝트 아래에 표시되는 항목 템플릿을 만들지 만 일부 템플릿은 unflavored C# 프로젝트 (이 아닌 웹앱, WPF, 워크 플로 등)에만 표시하고 싶습니다.

나는 HKCU \ 소프트웨어 \ 마이크로 소프트 \으로 VisualStudio \ 10.0Exp_Config \ 프로젝트 {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}합니다 (unflavoured C# 프로젝트 형식 등록) 아래의 레지스트리에보고했다, 나는 그것을 것을 볼 수 있습니다 템플릿 그룹 ID를 기준으로 필터링을 지정하지 않습니다 (도움이되지 않습니다). 예를 들어 WorkflowItemTemplateGroupID와 같은 템플릿 그룹 ID를 사용하여 추가 할 수있는 항목을 필터링하는 것처럼 보이지만 불쾌한 프로젝트는 항목을 필터링하지 않으므로 모든 항목을 필터링하는 것처럼 보입니다. VisibleByDefault가 "false"로 설정되어 있으면 템플릿 그룹 ID를 지정할 수 없으므로 항상 보이지 않습니다.

내가하려는 일을 할 수있는 방법이 있습니까?

답변

0

퍼즐 조각이없는 SVsRegisterNewDialogFilters service을 사용하여이 작업을 수행하는 방법을 알았습니다.

IVsFilterAddProjectItemDlg 구현 구현을 제공 할 수 있습니다.이 구현은 프로젝트 항목 추가 대화 상자가 호출 될 때마다 호출됩니다 (누가 호출했는지에 관계없이). 웹/실버 라이트 프로젝트에 다른 프로젝트 유형의 GUID를 사용하여 불투명하지 않은 C# 프로젝트를 호출합니다. 따라서 다양한 템플릿 디렉토리를 필터링 할 수 있습니다.