使用 C# 获取 visual studio 项目的名称

get the name of a visual studio project using C#

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

您可以使用以下代码获取当前项目层次结构。我从 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 讨论。