我创建了简单的 VS 包,用于在解决方案资源管理器的上下文菜单中添加新项目。我需要检查选定项目的项目类型 GUID。我怎么能得到这个。
例如,One Solution 包含三种不同类型的项目,如 WindowFormsApplication、MVC Projects、WebApplication。在选择 MVC 项目时,我们需要获取该 ProjectType GUID。
我在我的 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”。
有人可以帮我吗?