Получить путь ProjectItem без использования item.Document.FullName - PullRequest
9 голосов
/ 20 июля 2011

У меня есть проект надстройки Visual Studio, в котором я должен перебирать элементы текущего проекта, используя абсолютный (или относительный) путь к этим файлам.

item.Document.FullName работает, но только для файлов, которые открыты в данный момент.

Есть ли другой способ доступа к этой информации в объекте DTE?

Ответы [ 4 ]

22 голосов
/ 13 сентября 2011

Это то, что вы ищете?

myProjectItem.Properties.Item ("FullPath"). Значение

2 голосов
/ 10 августа 2016

Даже я искал решение, чтобы получить имя проекта на основе имени документа или файла. Я нашел это с помощью объекта dte. Инициализировал объект dte, как показано ниже.

EnvDTE80.DTE2 objDTE = this.GetService(typeof(SDTE)) as EnvDTE80.DTE2;

Затем использовал следующий код для получения имени проекта.

var projectItem = objDTE.Solution.FindProjectItem(document);
var projectUniqueName = projectItem.ContainingProject.UniqueName;
0 голосов
/ 09 августа 2011

ProjectItem.FileNames - это коллекция, представляющая полные пути связанных файлов

Например, если у вас есть элемент веб-формы под названием «MyWebForm», вы можете получить из ProjectItem.FileNames полный путь к файлу MyWebForm.ascx и полный путь к файлу MyWebForm.ascx.cs (CodeBehind). ) файл

0 голосов
/ 09 августа 2011

Мы обнаружили, что, если мы не хотим самостоятельно анализировать файлы проекта XML, вам необходимо сначала загрузить все выгруженные проекты.

Мы записываем список и затем снова выгружаем его, поэтому единственная проблема - это время еготребуется, чтобы загрузить их.

...