使用C#获取可视工作室项目的名称

时间:2018-03-21 05:45:58

标签: c# visual-studio visual-studio-2017 visual-studio-extensions

我正在构建一个扩展来自定义构建我的visual studio项目。为此,我需要知道我选择的项目的名称。我怎样才能得到这个?我正在用C#编写我的插件。我使用Visual Studio 2017。

1 个答案:

答案 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讨论。