【发布时间】:2017-04-24 17:00:28
【问题描述】:
我创建了简单的 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”。
谁能帮帮我?
【问题讨论】:
标签: vspackage vs-extensibility