我正在构建一个扩展来自定义构建我的visual studio项目。为此,我需要知道我选择的项目的名称。我怎样才能得到这个?我正在用C#编写我的插件。我使用Visual Studio 2017。
答案 0 :(得分:2)
您可以使用以下代码获取当前项目层次结构。我是从here得到的。
IntPtr hierarchyPtr, selectionContainerPtr;
Object prjItemObject = null;
IVsMultiItemSelect mis;
uint prjItemId;
IVsMonitorSelection monitorSelection = (IVsMonitorSelection) Package.GetGlobalService(typeof(SVsShellMonitorSelection));
monitorSelection.GetCurrentSelection(out hierarchyPtr, out prjItemId, out mis, out selectionContainerPtr);
IVsHierarchy selectedHierarchy = Marshal.GetTypedObjectForIUnknown(hierarchyPtr, typeof(IVsHierarchy)) asIVsHierarchy;
if (selectedHierarchy != null)
{
ErrorHandler.ThrowOnFailure(selectedHierarchy.GetProperty(prjItemId, (int)__VSHPROPID.VSHPROPID_ExtObject, out prjItemObject));
}
var projectItem = objProj as EnvDTE.ProjectItem;
如果您想了解更多详情,请查看this讨论。