Я пишу пакет настройки для Visual Studio 2010 (vsix).Выбранный проект из Solution Solution
Что мне нужно сделать, это добавить кнопку контекстного меню к узлам проекта в обозревателе решений.
Мне удалось отобразить контекстное меню при щелчке правой кнопкой мыши по узлам проекта, но моя следующая задача - получить ссылку на объект проекта, который был нажат. В настоящее время я могу получить проект, пройдя активный документ в среде IDE, используя приведенный ниже код.
DTE dte = (DTE)ServiceProvider.GlobalProvider.GetService(typeof(DTE));
Project project = dte.ActiveDocument.ProjectItem.ContainingProject;
Так что мой вопрос: как получить аналогичную ссылку на проект, выбранный в обозревателе решений?
Я так счастлив, что нашел это, не мог найти где-нибудь еще, как это сделать. : D – bio595
Я думаю, что вам не хватает 'Marshal.Release (hierarchyPtr); Marshal.Release (selectionContainerPointer); 'в конце, чтобы избежать утечки памяти. В противном случае отлично! – MickyD
Это может быть очевидно, но, как начинающий пользователь IntPtr, стоит отметить, что вы можете проверить selectContainerPointer == IntPtr.Zero перед вызовом Marshal.Release на нем, чтобы исключить исключение нулевого указателя. – webjprgm