Я создал простой пакет VS для добавления нового элемента в контекстное меню обозревателя решений. В этом мне нужно проверить GUID типа проекта выбранного проекта. Как я могу получить это.
Например, One Solution содержит три разных типа проектов, таких как WindowFormsApplication, MVC Projects, WebApplication. При выборе проектов MVC нам нужно получить этот GUID ProjectType.
Я пробовал следующее в моем Package.cs,
IVsMonitorSelection monitorSelection = (IVsMonitorSelection)Package.GetGlobalService(typeof(SVsShellMonitorSelection));
monitorSelection.GetCurrentSelection(out hierarchyPtr, out projectItemId, out mis, out selectionContainerPtr);
IVsHierarchy hierarchy = Marshal.GetTypedObjectForIUnknown(hierarchyPtr, typeof(IVsHierarchy)) as IVsHierarchy;
if (hierarchy != null)
{
object prjItemObject;
hierarchy.GetProperty(projectItemId, (int)__VSHPROPID.VSHPROPID_ExtObject, out prjItemObject);
string projectTypeGuid;
Project prjItem = prjItemObject as Project;
projectTypeGuid = prjItem.Kind;
}
При этом я получаю GUID как «FAE04EC0-301F-11D3-BF4B-00C04F79EFBC» для всех выбранных проектов.
Может ли кто-нибудь помочь мне в этом?