Я пока не нашел решения для этого.
Я добавил пункт меню в контекстное меню, когда щелкнул правой кнопкой мыши узел папки в обозревателе решений. При нажатии мне нужен полный путь к папке, по которой щелкнули.
Этот фрагмент кода я нашел, чтобы найти выбранный проект или projectItem.
IntPtr hierarchyPointer, selectionContainerPointer;
Object selectedObject = null;
IVsMultiItemSelect multiItemSelect;
uint projectItemId;
IVsMonitorSelection monitorSelection =
(IVsMonitorSelection)Package.GetGlobalService(
typeof(SVsShellMonitorSelection));
monitorSelection.GetCurrentSelection(out hierarchyPointer,
out projectItemId,
out multiItemSelect,
out selectionContainerPointer);
IVsHierarchy selectedHierarchy = Marshal.GetTypedObjectForIUnknown(
hierarchyPointer,
typeof(IVsHierarchy)) as IVsHierarchy;
if (selectedHierarchy != null)
{
selectedHierarchy.GetProperty(
projectItemId,
(int)__VSHPROPID.VSHPROPID_ExtObject,
out selectedObject);
}
Project selectedProject = selectedObject as Project;
Очевидно, это будет работать для файлов проекта. Но мое расширение будет работать только при щелчке правой кнопкой мыши по узлам папок. Есть указатели?